対話型プロンプトの作成

対話型プロンプトの作成

コマンドラインツールを使用しておりftp、スクリプト入力とユーザー入力を組み合わせたいです。ユーザーが入力した場合にのみ、プロンプトは次のようになります。

ftp>

しかし、次のスクリプトを使用していくつかの入力を挿入しようとすると

{echo "user username passwd"; cat;} | ftp -n server.tld

インタラクティブモードを引き続き使用するように強制するにはどうすればよいですかftp

私は標準的なシェルツールに基づいたソリューションを好みます。

ベストアンサー1

ftp例と同じ対話型コマンドラインツールと対話するプログラムがあります。expect。これはスクリプト言語を拡張する特別なスクリプトシェルですtcl

非常に強力ですが、その内容をすべて理解していないまま、ただ通過することができます。非常に便利なツールはautoexpect、予想されるスクリプトで対話型セッションを記録できます。録音されたスクリプトは基本を理解するのにかなり役立ちます。

スクリプトはexpect対話型プログラムと組み合わせることができます(たとえば、ユーザーftpと対話型プログラムの対話と組み合わせることができます。スクリプトinteractのコマンドを使用してexpect一時的にユーザーに制御を与えることができます
。受信しているユーザーは制御権を持っているので、実際にはユーザーとスクリプトの両方がプログラムと同時に対話します。

おすすめ記事