我正在尝试创建一个接受命令行参数的bash文件,但是我的OPTARG没有产生任何结果,看来这是必要的才能让它工作?
这就是我所拥有的:
#!/bin/bash
while getopts ":b" opt; do
case $opt in
b)
echo "result is: $OPTARG";;
\?)
echo "Invalid option: -$OPTARG" >&2;;
esac
done
当我使用file.sh -b TEST
运行时,这是我得到的结果:result is:
这里有什么想法?
答案 0 :(得分:9)
您在b
之后错过了冒号(b
之前不需要)。
使用此脚本:
#!/bin/bash
while getopts "b:" opt; do
case $opt in
b)
echo "result is: $OPTARG";;
*)
echo "Invalid option: -$OPTARG" >&2;;
esac
done