[英]How to read inline parameters using command line args in bash script?
我有一個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"
您的腳本運行正常,您的錯誤是
echo "1=$1"
如果要查看參數,則應在case
添加echo/print
#!/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]
問候
克勞迪奧
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.