如何在不破坏布局的情况下回显$命令

时间:2010-04-21 15:19:17

标签: bash echo variable-expansion

我正在尝试在bash脚本中执行以下操作:

com=`ssh host "ls -lh"`

echo $com

它可以工作,但回声会破坏输出(而不是将所有行都放在一列中,我将它们全部连接起来)。

如果我在CLI中执行:ssh host ls -lh,它将为我提供正确的输出和布局。

如何在回显变量时保留布局?

2 个答案:

答案 0 :(得分:2)

你需要:

echo "$com"

引号使shell不会将值分解为“words”,而是将其作为单个参数传递给echo

答案 1 :(得分: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"