如果您想支持長期選項,您應該使用外部getopt
實用程序。如果你只需要支持短期選項,最好使用Bash內建的getopts
。
下面是使用getopts
的例子(getopt
沒有太多不同):
options=':q:nd:h'
while getopts $options option
do
case $option in
q ) queue=$OPTARG;;
n ) execute=$FALSE; ret=$DRYRUN;; # do dry run
d ) setdate=$OPTARG; echo "Not yet implemented.";;
h ) error $EXIT $DRYRUN;;
\?) if (((err & ERROPTS) != ERROPTS))
then
error $NOEXIT $ERROPTS "Unknown option."
fi;;
* ) error $NOEXIT $ERROARG "Missing option argument.";;
esac
done
shift $(($OPTIND - 1))
不是你的第一個測試總是顯示true
結果,並會在當前創建一個名爲「1」的文件目錄。您應該使用(按優先順序排列):
if (($# > 1))
或
if [[ $# -gt 1 ]]
或
if [ $# -gt 1 ]
而且,對於一個任務,你不能有等號周圍的空間:
foo=1
@Prospero:斷開鏈接 – realtebo 2018-01-28 08:56:37