外部コマンドを実行して結果を変数に代入する - Linux シェルスクリプトプログラミング

PROGRAM


外部コマンドを実行して結果を変数に代入する

Linux シェルスクリプトでは、外部コマンドを簡単に呼び出せるようになっています。

実行方法は簡単で、コマンドラインからコマンドを実行するのと同じように、スクリプト内にコマンド行を記載することで実行できます。

date +"%Y/%m/%d"

このようにすることで、コマンドライン上で実行した時と同じように、画面上にその出力が表示されます。

コマンドラインの引数を変数を使って指定することもできます。

FORMAT="%Y/%m/%d"

date +"$FORMAT"

このようにしても、先ほどの外部コマンド実行と同じ結果を得ることができました。

 

外部コマンドの実行結果を、変数に格納することもできるようになっています。

たとえば date コマンドの出力結果を DATE という名の変数に格納したい場合には、Linux シェル (sh) では、次のような感じにします。

DATE=`date +"%Y/%m/%d"`

このように、右辺のコマンドをバッククォートでコマンドを括ってあげることで、その結果を左辺の変数に格納することができます。

他にも、配列と組み合わせればたとえば次のように結果を取得することもできます。

DATE=(`date +"%Y %m %d"`)

 

YEAR=${DATE[0]}

MONTH=${DATE[1]}

DAY=${DATE[2]}

上記の例では、DATE という名の変数を配列として使用しています。

スペースで区切られた値を括弧で括ると、それらが配列の要素として扱われることを利用して、date コマンドの出力を "年", "月", "日" をそれぞれスペースで区切られるように調整しています。

そうすると、DATE 配列の各要素は ${DATE[0]} 等で取り出せるので、それらを YEAR, MONTH, DAY に代入して、使いやすいようにしています。


[ もどる ]