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