GNU/Linux >> Linux の 問題 >  >> Linux

コマンド出力を変数に保存するときに改行を保持する方法は?

同じ問題に遭遇しました。見積もりが役立ちます

[email protected]:~/apps$ apps="abc
> def"
[email protected]:~/apps$ echo $apps
abc def
[email protected]:~/apps$ echo "$apps"
abc
def

引用 あなたの変数。理由は次のとおりです:

$ f="fafafda
> adffd
> adfadf
> adfafd
> afd"

$ echo $f
fafafda adffd adfadf adfafd afd

$ echo "$f"
fafafda
adffd
adfadf
adfafd
afd

引用符がない場合、シェルは $TEMP を置き換えます 含まれる文字 (そのうちの 1 つは改行) を使用します。次に、echo を呼び出す前に シェルは、Internal Field Separator を使用してその文字列を複数の引数に分割します (IFS)、その結果の引数のリストを echo に渡します .デフォルトでは、IFS 空白 (スペース、タブ、および改行) に設定されているため、シェルは $TEMP を切り刻みます 文字列を引数に入れると、改行が表示されなくなります。これは、シェルが改行をスペースと同様に区切り文字と見なすためです。


Linux
  1. コマンドの出力をシェル変数に割り当てる方法は?

  2. コマンドの出力をシェル変数に保存しますか?

  3. 出力を変数に割り当てるときにコマンド置換を引用する必要がありますか?

  1. Sshリモートコマンドライン引数はどのように解析されますか?

  2. Grub2のコマンドからの出力に等しい変数を設定するにはどうすればよいですか?

  3. Bashシェルスクリプトで改行をエコーする方法

  1. Linux でコマンド ライン シェル関数を使用する方法

  2. コマンドをシェルスクリプトの変数に格納する方法は?

  3. シェル コマンドの出力の最初の行を取得する