(bash)実行結果の最終行を取得し、変数に代入する

How To Linux Programming

今回はHackinotshではなく、bashシェルのネタ。

コマンドの実行結果の最終行だけ取得したいケースがあり、その際の記録です。

例えば以下のコマンドを実行すると。。。

$ apt update

実行結果はこうなります。

ヒット:1 http://jp.archive.ubuntu.com/ubuntu focal InRelease
ヒット:2 http://jp.archive.ubuntu.com/ubuntu focal-updates InRelease
ヒット:3 http://jp.archive.ubuntu.com/ubuntu focal-backports InRelease
ヒット:4 http://jp.archive.ubuntu.com/ubuntu focal-security InRelease
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています       
状態情報を読み取っています... 完了
パッケージはすべて最新です。

上記のうち、最終行の「パッケージはすべて最新です。」だけを取得して、変数に含めたい場合があるとします。

以下の記述で取得できました。

#!/bin/bash
PACKAGE=$(apt update|tail -n 1)
echo $PACKAGE