以前記事にしたtail
を利用したログ監視のテストとして、ログファイルに1行ずつ書く場合は単純にecho
コマンドを使えばいいが、ログが一気に出力された時にちゃんと差分を見ているのか確認するには一気に複数行追加する必要がありました。
当初は方法がわからなかったため、ログファイルを編集モードで開いて追加していましたが、今回紹介するfor(ループ)を利用したコマンド1発で、ログファイルに複数行を一気に書き込むことができたのでメモしておきます。
ファイルに複数行追加
繰り返しのfor文
開発経験者なら当たり前ですが、処理を繰り返すためにfor
やwhile
といった構文が、どのプログラミング言語にも用意されています。
tail
を利用したログ監視の記事ではwhile
を使用していましたね。
まずは見やすいように、シェルスクリプト形式で複数行&インデント付きで解説していきます。
for i in {1..10}
do
echo "test${i}" >> test.log
done
1行目はこのようになります。
for [変数名] in {[開始]..[終了]}
つまり、変数iがdo
~done
の中で1から10まで繰り返すということ。
結果は”test~“の後ろに連番が付きます。
1行のコマンドとして
上記の内容をたった1行のコマンドとして表すとこのようになります。
for i in {1..10}; do echo "test${i}"; done >> test.log
今後、色々なテストで使えそうですね!
- Original:https://minory.org/linux-for-echo.html
- Source:Minory
- Author:管理者