Автоматические ответы в скрипте bash
Хочу написать скрипт для авто снятии наград на ноде
Команда:
bitsongcli tx distribution withdraw-all-rewards --from Treasure --gas auto --gas-adjustment 1.5 --gas-prices 0.025ubtsg
после нужно ответить: y (подтверждение выполнения)
после нужно ввести пароль: newpassword (после чего команда выполняется)
помогите как это сделать в скрипте?
#!/bin/bash
echo "Сняли награду"
bitsongcli tx distribution withdraw-all-rewards --from Treasure --gas auto --gas-adjustment 1.5 --gas-prices 0.025ubtsg
Ответы (2 шт):
bitsongcli tx distribution withdraw-all-rewards --from Treasure --gas auto --gas-adjustment 1.5 --gas-prices 0.025ubtsg < input.txt
input.txt:
y
password
Может поможет?
Примерно так будет выглядеть конструкция для автоматического ввода данных, комментарии внутри команды нужно будет удалить, подставив необходимое.
#!/bin/bash
echo "Сняли награду"
expect -c 'bitsongcli tx distribution withdraw-all-rewards --from Treasure --gas auto --gas-adjustment 1.5 --gas-prices 0.025ubtsg;
#>>после нужно ответить: y (подтверждение выполнения)
#<<Ввести в кавычках текст приветствия
expect "text" {send -- "y\r\"};
#>>после нужно ввести пароль: newpassword (после чего команда выполняется)
#<<Приглашение ввода пароля указать вместо password:
expect "password:" {send -- "newpassword\r"};
interact'
В случае если команда expect не зарегистрирована в системе, нужно будет установить пакет
Ubuntu:apt-get install expect
CentOS:yum install expect