Как мне echo $ command, не нарушая макет - PullRequest
3 голосов
/ 21 апреля 2010

Я пытаюсь сделать следующее в скрипте bash:

com=`ssh host "ls -lh"`

echo $com

Это работает, но эхо нарушит вывод (вместо того, чтобы получать все строки в столбце, я получаю их все подряд).

Если я сделаю: ssh host ls -lh в CLI, это даст мне правильный вывод и расположение.

Как сохранить макет при отображении переменной?

Ответы [ 2 ]

2 голосов
/ 21 апреля 2010

Вам нужно:

echo "$com"

Кавычки заставляют оболочку не разбивать значение на «слова», а передавать его как один аргумент echo.

1 голос
/ 21 апреля 2010

Положите двойные кавычки вокруг $ 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"
...