3

私はbashスクリプトで次のことをしようとしています:

com=`ssh host "ls -lh"`

echo $com

動作しますが、エコーによって出力が壊れます (すべての行を 1 列で取得するのではなく、すべてを 1 行で取得します)。

もしそうなら:ssh host ls -lhCLIで正しい出力とレイアウトが得られます。

変数をエコーするときにレイアウトを保持するにはどうすればよいですか?

4

2 に答える 2

2

必要なもの:

echo "$com"

引用符により、シェルは値を「単語」に分割せず、単一の引数として に渡しますecho

于 2010-04-21T15:51:23.233 に答える
1

$com を二重引用符で囲みます。

com=`ssh host "ls -lh"`
printf "%s" $com | tr -dc '\n' | wc -c   # count newlines
printf "%s" "$com" | tr -dc '\n' | wc -c
echo "$com"
于 2010-04-21T15:54:16.037 に答える