启动shell脚本时传递参数

启动shell脚本时传递参数

嗨,我正在尝试编写一个 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:

相关内容