Поскольку элементы синтаксиса, такие как|
(или &&
, или ;
и т. д. ), распознаются как первая вещь при анализе командной строки и не обрабатываются снова после расширения параметров/переменных.
Практически единственное, что происходит после раскрытия параметров, подстановки команд и арифметических преобразований, — это разбиение на слова и подстановка имен файлов. Выходы расширений также не расширяются снова :это не печатает6
:
$ var='$((1+2+3))' # $((..)) not expanded here (single-quotes)
$ echo $var # $((..)) not expanded here either
$((1+2+3))
Еще один проход синтаксического анализа и расширения — это именно то, для чего eval
существует.
Связанные:
По слухам, это всего лишь предупреждение. Чтобы использовать закрытые ключи с исходной машины 1 при входе на другую машину 2, необходимо добавить их с помощью ssh-add ~/.ssh/id_{rsa,ecdsa,...}
в сеанс агента ssh -на машине 1. Они будут отображаться в выводе ssh-add -l
на машина 2.
При подключении с машины 2 на машину 3 не нужно копировать закрытые ключи благодаря «переадресации агента».(Невозможность подключения с машины 2 к машине 3 может быть связана с отсутствием секретного ключа, ожидаемого машиной 3 в команде ssh-add
, выполненной на машине 1 ).
Я также обнаружил, что нет необходимости запускать ssh-agent
на машине 2.