1. ホーム
  2. bash

[解決済み] 複数行の出力をBash変数に取り込む

2022-03-15 21:02:24

質問

次のような出力をするスクリプト 'myscript' があります。

abc
def
ghi

を別のスクリプトで呼び出しています。

declare RESULT=$(./myscript)

$RESULT は値を取得します。

abc def ghi

改行したまま、あるいは'˶'˶な文字で結果を保存して、'˶'˶な文字で出力する方法はありませんか? echo -e '?

解決方法は?

実は、RESULTには、あなたが欲しいもの、つまりデモをするためのものが含まれています。

echo "$RESULT"

見せることは、得ること。

echo $RESULT


コメントにあるように、違いは、(1)二重引用符で囲まれたバージョンの変数( echo "$RESULT" ) は、改行、タブ、複数の空白など、変数で表現されたとおりの値の内部スペースを保持するのに対し、 (2) 非クォート版 ( echo $RESULT ) は、1つ以上の空白、タブ、改行の連続を1つの空白に置き換えます。このように、(1)は入力変数の形状を維持しますが、(2)は「単語」をスペースで区切った非常に長い一行の出力を作成します(ここで「単語」とは、空白以外の文字の連続であり、どの単語にも英数字が含まれる必要はありません)。