我正在尝试在bash脚本中执行以下操作:
com=`ssh host "ls -lh"`
echo $com
它可以工作,但回声会破坏输出(而不是将所有行都放在一列中,我将它们全部连接起来)。
如果我在CLI中执行:ssh host ls -lh
,它将为我提供正确的输出和布局。
如何在回显变量时保留布局?
答案 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"