我有一个bash script
,其中command line args
和filename
为内联参数。我无法读取内联参数。
sh test.sh -a a -b b -c c < pwd.txt
test.sh
已
if [ $# = 0 ]
then
echo $USAGE >&2
exit $STATUS_ERROR_FAIL
fi
# Parse command line options.
while getopts a:b:c: OPT;
do
case "$OPT" in
a)
a="$OPTARG"
;;
b)
b="$OPTARG"
;;
c)
c="$OPTARG"
;;
\?)
# getopts issues an error message
echo $USAGE
exit $STATUS_ERROR_FAIL
;;
esac
done
shift $((OPTIND-1))
echo "1=$1"
答案 0 :(得分:0)
你的脚本运行正常,你的错误是
echo "1=$1"
如果您想查看参数,请在echo/print
case
#!/bin/bash
if [ $# = 0 ]
then
echo $USAGE >&2
exit $STATUS_ERROR_FAIL
fi
# Parse command line options.
while getopts a:b:c: OPT;
do
case "$OPT" in
a)
a="${OPTARG}"
echo "a[$a]"
;;
b)
b="${OPTARG}"
echo "b[$b]"
;;
c)
c="${OPTARG}"
echo "c[$c]"
;;
\?)
# getopts issues an error message
echo $USAGE
exit $STATUS_ERROR_FAIL
;;
esac
done
shift $((OPTIND-1))
或
您可以在脚本末尾添加echo/print
..它取决于您的需求
输出
[shell] ➤ ./t -a 1 -b 2 -c 3
a[1]
b[2]
c[3]
此致
克劳迪奥