Я намагаюся встановити змінну в Linux bash скрипт, який включає в себе $
пароль, тобто пароль 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)
Вся допомога оцінена.
Дякую
Енді.
1
Показати деякий код. Його можна легко вирішити.
—
glenn jackman
Код додано як потрібно.
—
Andy Kendall