コマンド出力時の改行印刷

コマンド出力時の改行印刷

変数のコマンド結果が得られた場合、この出力を新しい行に印刷するにはどうすればよいですか?愚かな例:

XX=$(ls -l); echo $XX

上記の文を実行すると、ls -l端末で実行したときに表示される形式化された戻り値の代わりに読み取れない結果行が表示されます。書式設定コマンドの結果を取得したり、その結果を改行文字で表示したりする方法はありますか?

ベストアンサー1

シェルが実行されないようにするには、二重引用符が必要です。フィールド分割:

XX="$(ls -l)"; echo "$XX"

echoしかし、内容がわからない変数と一緒に使用することはお勧めできませんprintfこの回答)の代わりに:

XX="$(ls -l)"; printf '%s\n' "$XX"

おすすめ記事