使用冒号有什么区别,这意味着"什么都不做"并继续,这意味着跳过。
if [[ -s $file ]] ; then
:
fi
if [[ -s $file ]] ; then
continue
fi
答案 0 :(得分:7)
:
是true
的同义词。它不会阻止同一块或循环中的后续命令运行。
比较
for (( i=0; i<3; i++ )); do
echo "Starting iteration $i"
(( i == 1 )) && { echo " About to run :"; :; echo " Just ran :"; }
(( i == 2 )) && { echo " About to run continue"; continue; echo " Just ran continue"; }
echo "Ending iteration $i"
done
我们的输出是:
Starting iteration 0
Ending iteration 0
Starting iteration 1
About to run :
Just ran :
Ending iteration 1
Starting iteration 2
About to run continue
请注意,我们已经结束了&#34;结束&#34;运行:
之后,而不是在运行continue
之后。
答案 1 :(得分:2)
这取决于你的程序的逻辑。
在循环之外你得到
$ continue
bash: continue: only meaningful in a `for', `while', or `until' loop