как передать пароль команде в bash - PullRequest
3 голосов
/ 22 февраля 2011

Я хочу написать сценарий bash, который будет выполнять одну команду в сценарии, и команда должна прочитать что-то вроде пароля.Так как я могу передать пароль команде в сценарии?

$ota_gen -k $ota_key -i $1 -p $ota_tools $2 $ota_out_file

ota_key - это закрытый ключ, который необходимо посетить с паролем, так как я могу это сделать?спасибо.

ps: спасибо, хловдал, за помощь.ожидать, может быть, то, что может помочь.Но я не знаю, может ли он взаимодействовать со скриптом bash, например, как передавать параметры из скрипта в ожидание.

Ответы [ 2 ]

3 голосов
/ 22 февраля 2011

Довольно распространенным инструментом для подачи программ с правильным вводом (например, пароли) неинтерактивно является инструмент ожидаемый . Следующий пример приведен на странице википедии:

# Assume $remote_server, $my_user_id, $my_password, and $my_command were read in earlier 
# in the script.
# Open a telnet session to a remote server, and wait for a username prompt.
spawn telnet $remote_server
expect "username:"
# Send the username, and then wait for a password prompt.
send "$my_user_id\r"
expect "password:"
# Send the password, and then wait for a shell prompt.
send "$my_password\r"
expect "%"
# Send the prebuilt command, and then wait for another shell prompt.
send "$my_command\r"
expect "%"
# Capture the results of the command into a variable. This can be displayed, or written to disk.
set results $expect_out(buffer)
# Exit the telnet session, and wait for a special end-of-file character.
send "exit\r"
expect eof
1 голос
/ 23 февраля 2011

ОК, я гуглю и получаю ответ о том, как взаимодействовать с ожидаемым в bash-скрипте. Я добавил строки в мой сценарий. Это не так.

й

    EXEC=$(expect -c "
spawn $ota_gen -k $ota_key -i $1 -p $ota_tools $2 $ota_out_file
expect \"Enter password for .... key>\"
send \"$PASSWD\r\"
interact
")
    echo $EXEC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...