我在下面编写了使用getopts
长选项的代码,但它不起作用(参数对变量的值没有影响)。什么是正确的语法?
while getopts "c:(mode)d:(file1)e:(file2)" opt; do
case $opt in
-c|--mode)
mode=$OPTARG
;;
-d|--file1)
file1=$OPTARG
;;
-e|--file2)
file2=$OPTARG
;;
esac
done
答案 0 :(得分:4)
我发现相关代码适用于ksh
而不是bash
。对于getopts
,我们不能使用长选项。我最终手动解析参数如下
while test -n "$1"; do
case "$1" in
-c|--mode)
mode=$2
shift 2
;;
-d|--file1)
file1=$2
shift 2
;;
-e|--file2)
file2=$2
shift 2
;;
esac
done