Разные результаты при использовании скрипта или вставке кода

Используйте -f переключатель для ssh, который отправит команду в фоновый режим после аутентификации и других потенциально интерактивных шагов.

0
16.06.2017, 18:27
2 ответа

Ваша интерактивная оболочка bash или что-то совершенно другое? echo общеизвестно непереносимо в отношении того, как он обрабатывает специальные символы, такие как \t. В bash обычное echo не расширяет их, но, например. зш, кажется.

$ zsh  -c 'echo "foo\tbar"'
foo     bar
$ bash -c 'echo "foo\tbar"'
foo\tbar

Bash echo -e и zsh echo -E инвертируют вышеописанное поведение.

Кроме того, вы, вероятно, захотите поместить эти переменные в кавычки:

#/bin/bash
echo -e "$name\t$pftot\t$etc..."

Конечно, переносимым решением будет printf:

printf "%s\t%s\t%s..." "$name" "$pftot" "$..."

Но нетрудно понять, почему вместо этого можно было бы использовать echo.

1
28.01.2020, 02:19

См. справочную страницу bash(1)в разделе «Встроенные команды». Параметр -eнеобходим, чтобы echoинтерпретировал escape-символы.

1
28.01.2020, 02:19

Теги

Похожие вопросы