1

簡単な 1 行のテストを使用して、テストが true の場合に複数のコマンドを実行するにはどうすればよいですか? 以下は機能しません。

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
4

1 に答える 1

4

使用{:

[[ ! -f "$f" ]] && { this; that; break; } || { the_other; ...; }

それが「よりシンプル」かどうかは、美学の問題です。

[[の代わりに使用すること[はオプションです。しかし、通常はより優れています。

于 2013-10-19T02:51:03.387 に答える