执行此操作的正确方法会有所不同,具体取决于您要执行的操作。如果要检查第一个参数是否为 --cron,请使用以下命令:
if [ "$1" = "--cron" ]; then
如果要检查唯一的参数是否是 --cron,请使用以下命令:
if [ "$*" = "--cron" ]; then
(请注意,这是做某事的正确方法的极少数情况之一"$*"
——它扩展到所有由空格分隔的参数,但出于解析目的将其视为单个单词。)
如果要检查是否有任何参数是 --cron,请使用以下命令:
cronopt=false
for argument; do
if [ "$argument" = "--cron" ]; then
cronopt=true
break # note: if you are scanning the arguments for other things too, remove this
fi
done
if $cronopt; then
...
顺便说一句,我不确定您使用该args=($@)
行的目的是什么,但是如果您想将参数存储在数组中,正确的方法是args=("$@")
——引号阻止它之前进行分词、文件名扩展等将参数放入数组中。