#!/usr/bin/expect -f
spawn -noecho ./myscript -d myhomedir
expect -re "Enter Password" { send -- [exec cat ~/.passwd | openssl enc -base64 -d ]\r }
interact
puts "\nDone.\n"
exit
Estou executando um script de utilitário como abaixo
./ myscript -d myhomedir
isso gera uma saída como abaixo Info: criando os arquivos em um homedir acima mencionado
Digite a senha:
Eu quero que essa senha seja uma entrada de um arquivo que eu codifiquei em um formato base64 aqui está meu script
passwd='cat ${myhomedir}/.passwd'
deCrypt='openssl enc -base64 -d <<< $passwd'
echo $deCrypt
./myscript -d myhomedir
expect "Enter Password:"
send -- "$deCrypt"
Isso não está funcionando. por favor, alguém poderia me orientar se existe uma maneira de ler a senha de um arquivo e tomá-la como uma entrada? sem digitá-lo.
#!/usr/bin/expect -f
spawn -noecho ./myscript -d myhomedir
expect -re "Enter Password" { send -- [exec cat ~/.passwd | openssl enc -base64 -d ]\r }
interact
puts "\nDone.\n"
exit