パスワードプロンプトを使用してプログラムに入力を提供する

パスワードプロンプトを使用してプログラムに入力を提供する

他のプロセスが終了するまで、端末で実行されている他のプロセスに複数のEnterキーを提供できるLinuxコマンドはありますか?

たとえば、コマンドを検討してくださいyes ' ' | ./ssr-sim prepare|パイプ()のLHS側にコマンドが必要です。たとえば、他のコマンドはyes ' '左ではなく右に|複数のEnterキーを提供します。./ssr-sim prepare

シェルスクリプトでキーストロークを自動化したい場合、コマンドはパスワードを./ssr-sim prepare複数回要求する出力を生成し、ユーザーはEnter手動でキーを押す必要があります(ここではパスワードを入力する必要はなく、押すたびに要求する必要がありEnterます)。 )。 Enterキー部分を自動的に押す必要があります。
このコマンドはyes ' ' | ./ssr-sim prepare効果がありません。

答え1

echoインタラクティブプログラムへの ing または ing 入力がプログラムを欺くのに十分でない場合、これは通常、入力がyes実際に端末かパイプであるかを正確に確認しようとするためです。これには、人々が一般的に使用するより大きなハンマーが必要です。予想される、この問題を回避するために書かれています。

答え2

printf \\n%.0b `seq 1 ${NUMBER OF TIMES YOU WANT}` | $CMD

もしあなたの$CMDこのパイプが気に入らない場合は、次のことを試してみてください。

printf 'PRESS CTRL+V then ENTER TWICE\n' >&2 ; read -r ENTER

$CMD <<YESALREADY
    $(printf "$ENTER\n%.0b" `seq 1 ${NUMBER OF TIMES YOU WANT}`)
YESALREADY

それでも問題が解決しない場合は、同様の解決策を見つける必要があります。expectすでに言及したかpty例えば、zsh組み込みzpty基準寸法。

関連情報