レイアウトを破らずにコマンドをエコーするにはどうすればよいですか
-
30-09-2019 - |
質問
私はバッシュスクリプトで以下をやろうとしています:
com=`ssh host "ls -lh"`
echo $com
それは機能しますが、エコーは出力を破壊します(すべてのラインを列に入れる代わりに、私はそれらをすべて連続して取得します)。
私が行った場合: ssh host ls -lh
CLIでは、正しい出力とレイアウトを提供します。
変数をエコーするときにレイアウトを保持するにはどうすればよいですか?
解決
あなたが必要です:
echo "$com"
引用は、シェルが値を「単語」に分割するのではなく、単一の引数として渡すことができます echo
.
他のヒント
$ 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"
所属していません StackOverflow