スクリプトから新しいターミナルを開いてユーザー入力を取得し、スクリプトで入力を使用します。

スクリプトから新しいターミナルを開いてユーザー入力を取得し、スクリプトで入力を使用します。

バックグラウンド シェル スクリプトから新しいターミナル (xterm、gnome-terminal など) を開き、ユーザー入力を取得し、新しく開いたターミナルを閉じて、入力されたデータを使用することは可能ですか?

答え1

代わりに次のようなものを使用することを検討してくださいzenity

QUEST="$(zenity --entry --title="Answer these questions three" --text="What is your quest?")"

答え2

次のようにしてこれを実行しますxterm:

mkfifo answer.fifo
xterm -T window-title-string -n icon-string -e bash -c 'read -p "input-prompt: " answer; echo "$answer" > answer.fifo' &
answer=$(<answer.fifo)

man xtermデフォルト以外の外観にしたい場合は、ウィンドウのサイズと位置、およびテキストの色とフォントを制御する方法の詳細を参照してください。

で実行する場合gnome-terminalも同様ですが、ウィンドウのサイズ、位置、色を最初に制御するためのオプションが少なくなります (ただし、送信するスクリプトtputでは使用できます)。-e

関連情報