レイアウトを破らずにコマンドをエコーするにはどうすればよいですか

StackOverflow https://stackoverflow.com/questions/2684216

  •  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"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top