Используя 'ожидают', какой Вы просите, возможно, и некоторые люди все еще используют его. Ожидать сценарий может 'поймать' вывод команд, и можно 'ответить' на основе их вывода. Ваш сценарий будет похож:
spawn scp some_file user@host:/destination
expect "*?assword:*"
send -- "Your Super Secret Password Here\r"
send -- "\r"
Конечно, это работало бы, но это повысится другая проблема. Ваш пароль будет сохранен в форме простого текста, и любой читающий этот файл смог бы видеть Ваш пароль.
Мое личное мнение - то, что самым безопасным неинтерактивным путем является аутентификация с закрытым ключом.
Для &
(или почти любой другой символ, у Вас есть две простых возможности.
' -3ab_&_-3dc.img'
-3ab_\&_-3dc.img
Существует два исключения:
foo'bar\qux
: cd 'foo'\''bar\qux'
. Можно помнить это тот путь: в одинарных кавычках, '\''
получает Вас одинарная кавычка.Можно использовать двойные кавычки также, но затем необходимо поместить обратную косую черту перед некоторыми символами. Одинарные кавычки более просты.
Здесь существует дополнительная трудность, которая является, что название каталога начинается с тире. Тот символ говорит cd
команда (как почти каждая команда), за которым следует опция. Тире не является особенным для оболочки, только для команды, таким образом, кавычки не будут влиять на него. У Вас есть два способа передать аргумент, который начинается с тире к команде, не интерпретируя его как опцию:
./
впереди все еще определяет тот же файл.--
прежде. Это говорит команде прекращать искать опции.Таким образом, вот некоторые пути, можно измениться в этот подкаталог:
cd -- '-3ab_&_-3dc.img'
cd -- -3ab_\&_-3dc.img
cd ./-3ab_\&_-3dc.img
cd './-3ab_&_-3dc.img'
Амперсанда действительно должны оставить, но проблема, которую Вы имеете, вероятна с продвижением -
, вместо амперсанда. Продвижение -
сделанный CD думает, что Вы являетесь передающими в опциях. Можно работать вокруг этого при помощи ./
:
cd './-3ab_&_-3dc.img'
&
определенно проблема. Что касается -
, это зависит от оболочки. Zsh довольно счастлив cd
луг к каталогу, запускающемуся с a -
. Однако удар не.
– Patrick
26.03.2013, 01:52