3

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

com=`ssh host "ls -lh"`

echo $com

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

如果我这样做:ssh host ls -lh在 CLI 中它会给我正确的输出和布局。

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

4

2 回答 2

2

你需要:

echo "$com"

引号使 shell 不会将值分解为“单词”,而是将其作为单个参数传递给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 回答