我有一个脚本,该脚本接受3个参数作为输入,然后继续执行该脚本。我正在使用getopts来检查传递的参数,但是我无法获取脚本内部传递的参数的值。 谁能检查这段代码并建议如何获取在我的脚本内(内部函数和外部函数)传递的参数的值
while getopts ":s:a:c:" params
do
case $params in
s) name="$OPTARG" ;;
a) value="OPTARG" ;;
c) file="OPTARG" ;;
?) print_usage;;
esac
done
当我尝试访问$ name,$ value和$ file时,我的脚本总是打印我在我的脚本中拥有的帮助信息,即print_usage
的内容
预先感谢您的帮助
答案 0 :(得分:0)
除了错字(在OPTARG中缺少$号),它对我来说还不错:
print_usage() {
echo "usage"
exit
}
while getopts ":s:a:c:" params
do
case $params in
s) name="$OPTARG" ;;
a) value="$OPTARG" ;;
c) file="$OPTARG" ;;
?) print_usage;;
esac
done
echo "name=$name, value=$value, file=$file"
然后
$ bash test.sh -s foo -a bar -c baz
name=foo, value=bar, file=baz
和
$ bash test.sh -z
usage