Я пытаюсь установить переменную в скрипте bash для Linux, которая содержит символ $
, т.е. пароль равен Gl @ d1us $ 123, поэтому PASS="Gl@d1us\$123"
. Я могу поставить перед $
символ \
и он отлично работает, но когда он вызывает сценарий EXPECT, символ $
вызывает его сбой. Я могу ввести пароль непосредственно в сценарий EXPECT, используя \
как и раньше, и он работает нормально, так что это просто процесс передачи переменной пароля между сценариями, что вызывает у меня горе.
Основной скрипт:
echo
echo
USER=kendalla
PASS="Gl@d1us\$123"
DIR=/home/kendalla/scripts/Audit
./get_hardware.expect $HOST $USER $PASS > $DIR/$HOST
Скрипт get_hardware.expect:
#!/usr/bin/expect -f
log_user 1
log_file /home/kendalla/scripts/Audit/HOST
set HOST [lrange $argv 0 0]
set USER [lrange $argv 1 1]
set PASS [lrange $argv 2 2]
spawn ssh -q -l $USER $HOST
expect "$USER@rebehc01's password:"
send "Gl@d1us\$123\r" ;#(This works)
send $PASS ;#(This doesn't work)
Вся помощь приветствуется.
Спасибо
Энди.