1. ホーム
  2. bash

[解決済み] bashで複数行の出力を配列としてキャプチャする [重複] [重複

2023-04-24 07:07:33

質問

もし inner.sh

#...
echo first
echo second
echo third

そして outer.sh

var=`./inner.sh`
# only wants to use "first"...  

どのようにして var は空白で分割されるのでしょうか?

どのように解決するのですか?

これを試してみてください。

var=($(./inner.sh))

# And then test the array with:

echo ${var[0]}
echo ${var[1]}
echo ${var[2]}

出力します。

first
second
third

説明

  • bashで配列を作るには、次のようにします。 var=(first second third) とか、例えば
  • $(./inner.sh) は実行されます。 inner.sh スクリプトが実行され、次のように表示されます。 first , second そして third を別々の行に記述しています。ダブルクォートで囲んでいないので $(...) をダブルクォートで囲んでいないので、それらは同じ行にまとめられますが、スペースで区切られているので、前の箇条書きで示したような結果になります。