【bashシェル】コマンドの実行結果を変数に格納する


この記事はプロモーションを含みます。

bashシェル

bashシェルスクリプトで、コマンドの実行結果(単一行・複数行)を変数に格納する方法を解説します。

コマンドの実行結果が単一行の場合

単一行(1行)の実行結果を変数に格納する方法です。

下記は、サンプルコードです。
pwdコマンドの実行結果を変数[result]に格納し、その後、変数の内容を確認しています。

#!/bin/bash

# コマンドの実行結果を変数に格納
result=`pwd`

# 確認
echo ${result}

サンプルの実行結果です。

[root@STKPUB002 workspace]# sh sample.sh
/home/workspace

コマンドの実行結果が複数行の場合

複数行の実行結果を変数に格納する方法です。

下記は、サンプルコードです。
catコマンドの実行結果を変数[result]に格納し、その後、変数の内容を確認しています。

#!/bin/bash

# コマンドの実行結果を変数に格納
result=`cat /home/data/file1.txt`

# 確認
echo "${result}"

サンプルの実行結果です。

[root@STKPUB002 workspace]# sh sample.sh
あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの

変数の内容を表示する際、「echo ${result}」と記述する(ダブルクォーテーションで囲まない)と、下記のように改行が半角スペースとして扱われます。

[root@STKPUB002 workspace]# sh sample.sh
あいうえお かきくけこ さしすせそ たちつてと なにぬねの

変数を含むコマンドの場合

変数を含むコマンドの実行結果を変数に格納する方法を説明します。

下記は、サンプルコードです。
まず、lsコマンドで使用するパスを変数[path]に格納しています。
次に、lsコマンド(ls -1 ${path})の実行結果を変数[result]に格納し、その後、変数の内容を確認しています。

#!/bin/bash

# パス情報を変数に格納
path=/home/data/

# コマンドの実行結果を変数に格納
result=`ls -1 ${path}`

# 確認
echo "${result}"

サンプルの実行結果です。

[root@STKPUB002 workspace]# sh sample.sh
dir1
dir2
dir3
file1.txt
file2.txt
file3.txt

コメント

タイトルとURLをコピーしました