複数回のコマンドを同じファイルにリダイレクト
以下のようなシェルスクリプトを書いた場合、同じファイルをコマンドの回数だけオープンすることになり 無駄が生じる。
#!/bin/sh
echo foo >> a.txt
echo bar >> a.txt
echo baz >> a.txt
shellcheckにかけると以下の違反が検出される。
Consider using { cmd1; cmd2; } >> file instead of individual redirects.
複数回のコマンドをまとめて一回だけリダイレクトする
SC2129 – ShellCheck Wikiに従って{}
で囲ってリダイレクトする。
#!/bin/sh
{
echo foo
echo bar
echo baz
} >> a.txt
これで一度だけファイルをオープンすることになる。
\第一線のプログラマーの行動原理を学べる!/