#navi(../)
* コマンドの戻り文字列を変数に代入したい [#bc8238db]
コマンドを実行したときに表示される文字列を変数に代入する方法を以下に記します。~
使用したシェルは、bashになります。

#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)

* 関連記事 [#s186e4c0]
-[[スペースが含まれる文字列を1行として扱う方法>逆引きシェルスクリプト/スペースが含まれる文字列を1行として扱う方法]]
-[[スペース区切りの文字列を配列に格納する方法>逆引きシェルスクリプト/スペース区切りの文字列を配列に格納する方法]]
-[[コマンドがどこにあるかを探す・which>逆引きUNIXコマンド/コマンドがどこにあるかを探す]]
-[[echoコマンドの出力で改行を出力しない方法>逆引きUNIXコマンド/echoコマンドの出力で改行を出力しない方法]]

* バックくオート`で囲んで文字列を取得する [#s7884e21]
以下の構文により、バッククォートで囲まれたコマンドの出力文字列は左辺の変数に代入されます。
 変数名=`コマンド`
実際に実行した例を以下に記します。

-lsコマンドのありかをwhichで探し、返却された文字列をLSPATH変数に代入しています。~
LSPATHをechoコマンドで確認するとlsのパスが格納されていることが確認できます。
 sakura@ubuntu:~$ LSPATH=`which ls`
 sakura@ubuntu:~$ echo $LSPATH
 /bin/ls

-ディレクトリ一覧なども取得できます
 sakura@ubuntu:~$ DIRS=`ls -1`
 sakura@ubuntu:~$ echo $DIRS
 Desktop Downloads Pictures examples.desktop ダウンロード テンプレート デスクトップ 
 ドキュメント ビデオ ピクチャ ミュージック 公開

* $(コマンド)で文字列を取得する [#d9418233]
上記のバッククォートと同じ動作になります。~
 変数名=$(コマンド)

実際に実行した例を以下に記します。
-dateコマンドのありかをwhichで探し、返却された文字列をDATEPATH変数に代入しています。~
 sakura@ubuntu:~$ DATEPATH=$(which date)
 sakura@ubuntu:~$ echo $DATEPATH
 /bin/date

-ログインユーザ一覧を取得してみます。
 sakura@ubuntu:~$ who
 sakura   pts/3        2016-06-06 10:58 (192.168.106.1)
 sakura   pts/9        2016-06-06 11:28 (192.168.106.1)
 sakura@ubuntu:~$ WHO=$(who)
 sakura@ubuntu:~$ echo $WHO
 sakura pts/3 2016-06-06 10:58 (192.168.106.1) sakura pts/9 2016-06-06 11:28 (192.168.106.1)
2行が1行になって格納されています。
#br
このような場合、スペースもありますし1行になってしまっています。~
forでループしたい場合は、以下の資料が参考になると思います。
-[[スペースが含まれる文字列を1行として扱う方法>逆引きシェルスクリプト/スペースが含まれる文字列を1行として扱う方法]]
-[[スペース区切りの文字列を配列に格納する方法>逆引きシェルスクリプト/スペース区切りの文字列を配列に格納する方法]]

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS