Bash変数の新しい行

Bash変数の新しい行

Bash変数に複数行を保存しようとしても機能しないようです。

たとえば、/bin1行にファイルを一覧表示して保存して$LSから$LSstdinに渡すと、wc常に1が返されます。

$ ls -1 /bin | wc -l
134
$ LS=$(ls -1 /bin); wc -l <<< $LS
1

画面に出力しようとすると、さまざまな結果が表示されます。echoすべての行を1行に印刷しますが、printf最初の行だけを印刷します。

#!/bin/bash
LS=$(ls -1 /bin)
echo $LS
printf $LS

それでは、bash変数に複数の行を含めることができますか?

ベストアンサー1

二重引用符で囲む必要があります(そしてしなければならない 二重引用符変数ほとんどの場合):

echo "$LS"

しかし、エコを使用しないでください変数の内容を印刷するには、次のようにします。printfに変更:

printf '%s\n' "$LS"

おすすめ記事