Сброс терминала после прерывания 'read -r -s'

Переменные не раскрываются в одинарных кавычках, а именно так вы передаете команды в первом случае. Таким образом, в первом случае оболочка на удаленной стороне никогда не получает ваши значения, она просто получает literal $1 и $2, а их не существует, поэтому они расширяются в ничто. Поэтому

$ var=foo
$ echo '$var'
$var
$ echo "$var"
foo

pscp не получает никаких значений, когда вы передаете $1 и $2 (потому что они не существуют в удаленной оболочке), поэтому он выдает ошибку при запуске. Вот как в итоге вызывается pscp:

pscp -pw final_result.txt

Используйте двойные кавычки, когда вы хотите, чтобы переменные расширялись текущей оболочкой, а не одинарные кавычки. Использование одинарных кавычек в данном случае было бы уместно, если бы вы хотели, чтобы переменные были расширены оболочкой remote.

1
11.02.2019, 20:32
0 ответов

Теги

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