【发布时间】:2015-02-18 03:42:22
【问题描述】:
我正在尝试在 bash 脚本中执行以下操作:
com=`ssh host "ls -lh"`
echo $com
它可以工作,但是回显会破坏输出(我不是将所有行都放在一列中,而是将它们都放在一行中)。
如果我这样做:ssh host ls -lh 在 CLI 中它会给我正确的输出和布局。
如何在回显变量时保留布局?
【问题讨论】:
标签: bash echo variable-expansion
我正在尝试在 bash 脚本中执行以下操作:
com=`ssh host "ls -lh"`
echo $com
它可以工作,但是回显会破坏输出(我不是将所有行都放在一列中,而是将它们都放在一行中)。
如果我这样做:ssh host ls -lh 在 CLI 中它会给我正确的输出和布局。
如何在回显变量时保留布局?
【问题讨论】:
标签: bash echo variable-expansion
你需要:
echo "$com"
引号使 shell 不会将值分解为“单词”,而是将其作为单个参数传递给 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"
【讨论】: