Как эхо $ команду, не нарушая макет
-
30-09-2019 - |
Вопрос
Я пытаюсь сделать следующее в скрипте Bash:
com=`ssh host "ls -lh"`
echo $com
Он работает, но эхо будет нарушать выход (вместо того, чтобы получать все линии в столбце, я получаю их все подряд).
Если я сделаю: ssh host ls -lh
В CLI это даст мне правильный выход и макет.
Как я могу сохранить макет, когда повторяющуюся переменную?
Решение
Тебе нужно:
echo "$com"
Цитаты делают оболочку не нарушать значение в «словах», но передайте его как единый аргумент 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"
Не связан с StackOverflow