Задача:
Переменная, содержит в конце $$
$ a='SYS_$$'
$ echo $a
SYS_$$
Тут разворачивает $$ в конце строки как номер процесса, а надо отобразить строку "SYS_$$", передаваемую как параметр.
$ echo "echo \$1" | ssh another_host "/bin/sh -s $a"
SYS_18992
Ответ
Попробуйте так:
$ a='SYS_$$'
$ echo 'echo $1' | ssh another_host "/bin/sh -s '$a'"
SYS_$$
При вызове ssh, внутри двойных кавычек одиночные кавычки тетряют своё специальное назначение и переменная $а будет замещена её значением, т.е. $SYS_$$
Далее, при вызове sh на удалённом хосте, одиночные кавычки вновь приобретают своё специальное назначение и препятствуют замещению $$ текущим pid.
Комментариев нет:
Отправить комментарий