スクリプトが X セッションで実行されると仮定します。いいえ、そのような状況で が設定されると信じる理由はありませんTERM
(設定されている場合、同じ名前のバイナリを指すのは偶然です。この変数の内容は Termcap のキーである必要があります)。または Terminfo; 多くの場合、最新のシステムでは、 、または)vt220
の変形ではない場合のようなものかもしれません。xterm
emacs
dumb
一方、環境が X の場合は、基本的にxterm
.
Debian はx-terminal-program
(IIRC) を定義して、ユーザーまたはシステム管理者が別のデフォルトの端末エミュレーターを選択できるようにします。
POSIX 1003 には、あなたが解決しようとしている問題の概念がないと思います (そして、私たちも推測しています。おそらく、質問に詳細を追加できますか?)
ユーザーが利用できるようにするためのより良いプラットフォームは Freedesktop.org かもしれませんが、たとえば Mac OSX がその有用なサブセットに準拠しているかどうかはわかりません。(もしそうなら、彼らはすべてを実装するかもしれません。私にはわかりません。)
一方、単純で大まかな修正は、最初にスクリプトを端末から実行することを要求することです。次に、単純cat
にテキスト ファイル (EULA だと思いますか?) を表示し、echo
(またはcat
もう一度)read
ユーザーと対話するために使用できます。つまり、これらのために新しいターミナル ウィンドウを開こうとしないでください。おそらく、スクリプトの開始近くですべての対話を行って、早期の救済を容易にします。
グラフィカルな対話が必要な場合は、ターゲット プラットフォームを制限するか、異なる環境ごとに複雑なラッピングを作成する必要があります。