如果测试成立,我如何使用简单的单行测试并执行多个命令? 以下不起作用:
for f in $source_dir/*.mov
do
[ ! -f "$f" ] && echo "No files in source directory. Exiting."; break || continue
# a bunch of commands
done
我使用下面的代码让它工作,但我觉得应该有更简单的方法。
for f in $source_dir/*.mov
do
if [ ! -f "$f" ]; then
echo "No files in source directory. Exiting."
break
else
# a bunch of commands
fi
done
答案 0 :(得分:4)
使用{
:
[[ ! -f "$f" ]] && { this; that; break; } || { the_other; ...; }
这是否“更简单”是一个美学问题。
使用[[
代替[
是可选的。但它通常会更好。