Možná nebudete mít možnost nainstalovat Expect na cílový server. To je často případ, kdy člověk píše, řekněme, Jenkinsovu úlohu.
Pokud ano, zvážil bych něco jako odpověď na následující na askubuntu.com:
https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line
printf 'y\nyes\nno\nmaybe\n' | ./script_that_needs_user_input
V některých vzácných případech příkaz nevyžaduje, aby uživatel po znaku stiskl klávesu Enter. v tom případě vynechejte nové řádky:
printf 'yyy' | ./script_that_needs_user_input
Pro úplnost můžete také použít dokument zde:
./script_that_needs_user_input << EOF
y
y
y
EOF
Nebo pokud to váš shell podporuje, řetězec zde:
./script <<< "y
y
y
"
Nebo můžete vytvořit soubor s jedním vstupem na řádek:
./script < inputfile
Opět platí, že všechna čest za tuto odpověď patří autorovi odpovědi na askubuntu.com, lesmana.
echo y | command
by mělo fungovat.
Některé instalační programy mají také příznak "auto-yes". Je to -y
pro apt-get
na Ubuntu.
Příkaz „ano“ bude donekonečna opakovat „y“ (nebo cokoli, o co ho požádáte). Použijte jej jako:
yes | command-that-asks-for-input
nebo, pokud je vyžadováno velké 'Y':
yes Y | command-that-asks-for-input
Pokud chcete předat 'N', stále můžete použít yes
:
yes N | command-that-asks-for-input