私はbashでスクリプトを書いています。コマンドを実行して、それぞれの行を別々に処理したいと思います。変数内に複数行出力を配置する
LINES=$(df)
echo $LINES
出力を変換するすべての改行をスペースで返します。
例:その後、私は新しいを可能変数にコマンドの出力を配置することができますどのように
1 2 3
になるだろう
1
2
3
:
出力が可能になっていた場合行はまだ新しい行になるので、変数を出力すると適切な出力が得られますか?
私はbashでスクリプトを書いています。コマンドを実行して、それぞれの行を別々に処理したいと思います。変数内に複数行出力を配置する
LINES=$(df)
echo $LINES
出力を変換するすべての改行をスペースで返します。
例:その後、私は新しいを可能変数にコマンドの出力を配置することができますどのように
1 2 3
になるだろう
1
2
3
:
出力が可能になっていた場合行はまだ新しい行になるので、変数を出力すると適切な出力が得られますか?
一般的に、bashの$v
はほとんどの場合問題を求めています。ほとんどの場合、実際には"$v"
が二重引用符で囲まれています。
LINES="`df`" # double-quote + backtick
echo "$LINES"
OLDPATH="$PATH"
いいえ、そうではありません。 $(something)
は、改行の後ろを取り除きます。
エイリアスをエイリアスに展開してエコーをエコーすると、引数をスペースで区切って連結します。空白を保持するには、再度引用する必要があります:割り当てはを引用符で囲む必要はありませないこと
echo "$LINES"
注意を。拡張の結果は変数への代入では単語分割されず、case
への引数では分割されません。しかし、引用符で囲むことができます。
実際に変数に代入すると、変数に代入するときに展開結果が単語分割されないため、引用符が必要になりません。しかし、彼らは何かを傷つけることはありませんし、あなたの筋肉の記憶を訓練して、すべての拡張について二重引用符を入力する方が簡単です。 –
おかげで、ありがとう! – kubanczyk