![启动shell脚本时传递参数](https://linux22.com/image/875868/%E5%90%AF%E5%8A%A8shell%E8%84%9A%E6%9C%AC%E6%97%B6%E4%BC%A0%E9%80%92%E5%8F%82%E6%95%B0.png)
嗨,我正在尝试编写一个 shell 脚本以在启动时接受参数。我想要实现的目标是调用一个 Python 脚本,该脚本本身接受参数。如果缺少参数,则使用 default 语句将它们设为预定义的默认值。这是我尝试运行的脚本:
#!/bin/bash
#Script for calling th e python script sniff.py
while getopts d:D o
do case "$o" in
d) usb_dev="@OPTARG";;
D) console_outp="@OPTARG";;
*) usb_dev=ttyUSB1;
console_outp=INFO;
esac
done
sniff=/home/user/Documents/Wireshark/Sensniff/sniff.py
sudo python $sniff -d "$usb_dev" -D "$console_outp"
sleep 5d
这个脚本当然不能运行。你能帮我让这个脚本运行起来吗?
答案1
尝试
#!/bin/bash
#Script for calling th e python script sniff.py
usb_dev=ttyUSB1
console_outp=INFO
while getopts d:D: o
do case "$o" in
d) usb_dev="$OPTARG";;
D) console_outp="$OPTARG";;
esac
done
(same as your script)
- 默认值应先初始化。
- 使用
$OPTARG
而不是@OPTARG
- 选项定义为
:D:d: