【问题标题】:How do I echo $command without breaking the layout如何在不破坏布局的情况下回显 $command
【发布时间】:2015-02-18 03:42:22
【问题描述】:

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

com=`ssh host "ls -lh"`

echo $com

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

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

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

【问题讨论】:

    标签: bash echo variable-expansion


    【解决方案1】:

    你需要:

    echo "$com"
    

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

    【讨论】:

    • 哦,拜托,我期待更“困难”的事情。但不管怎样,它奏效了。谢谢!
    【解决方案2】:

    在 $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"
    

    【讨论】:

      猜你喜欢
      • 2011-12-29
      • 2019-11-20
      • 1970-01-01
      • 2015-06-11
      • 2020-05-03
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      相关资源
      最近更新 更多