How do I echo $command without breaking the layout

孤者浪人 提交于 2019-11-28 05:28:29

问题


I'm trying to do the following in a bash script:

com=`ssh host "ls -lh"`

echo $com

It works, but the echo will break the output (instead of getting all lines in a column, I get them all in a row).

If I do: ssh host ls -lh in the CLI it will give me the correct output and layout.

How can I preserve the layout when echoing a variable?


回答1:


You need:

echo "$com"

The quotes make the shell not break the value up into "words", but pass it as a single argument to echo.




回答2:


Put double quotes around $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"


来源:https://stackoverflow.com/questions/2684216/how-do-i-echo-command-without-breaking-the-layout

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!