ブログ

シェル: コマンドの実行結果を変数に入れる方法

at_ito
2018年7月10日 14時04分

シェルスクリプト等を作成する際に、文字列や数値ではなく、コマンドの実行結果を変数に入れたい場合があると思います。

ここではシェルでコマンドの実行結果を変数に入れる方法を紹介します。

コマンドの実行結果を変数に入れる

‘(バッククォート)で囲むことでコマンドを処理した実行結果を示すことができます。 例えば、findコマンドの実行結果を変数FILEに入れる場合は、以下のように実行します。

[armadillo ~]# FILE=`find *`

バッククォートのほかにも$()を使用する方法もあります。 先ほどの例を書き換えると以下のようになります。

[armadillo ~]# FILE=$(find *)

参考

コマンドを実行結果を変数に入れることなく、以下のようにコマンドの組み合わせで利用する方法もあります。

[pc ~/linux-3.14.x-at]$ grep ARMADILLO `find * -name Kconfig`
arch/arm/mach-shmobile/Kconfig:config MACH_ARMADILLO800EVA
arch/arm/mach-shmobile/Kconfig:config MACH_ARMADILLO800EVA_REFERENCE
arch/arm/mach-imx/Kconfig:config MACH_ARMADILLO5X0

上記のコマンドはLinuxカーネルソースのKconfigファイルのみgrepを実行している例になります。