私のスクリプトで別の画面バッファを使用するためにtputを使用しようとしています。以下は私が実行している小さなスクリプトです。
tput smcup
clear
dialog --yesno "Do you want to continue?" 0 0
rc=$?
clear
tput rmcup
if [ "${rc}" == "0" ]; then
echo Yes
else
echo No
fi
スクリプトの実行が完了すると、スクリプトを実行する前にプロンプトが占める行数と同じ画面の空白部分(下の画像を参照)が表示されます。理想的にはtput
、2番目の画面バッファに切り替える必要があり、実行後は最初の画面バッファに返す必要があります。
スクリプトは2番目の画面に切り替わりますが、不可欠なスペースを残して返されます。
ベストアンサー1
dialog
実践の問題だhttp://invisible-island.net/dialog/dialog.html。
smcup
起動時にそれ自体で+演算を実行しますが、初期化ルーチンが演算を実行してそれを取り消そうとするためだと思います。だから、あらかじめしておくとキャンセルになりますので何の効果もありません。rmcup
ncurses
smcup
dialog
smcup
rmcup
回避策は、これを行わないように指示するオプションを追加して、端末がサポートしている--keep-tite
場合はdialog
他のアプリケーションと同様にsmcup
起動およびrmcup
終了することです。ncurses
あなたの意見によると、別の問題に直面しているようです。あなたが使用している端末は代替画面をサポートしていないため、何をしてもその代替画面は使用できません。存在しません。
ただし、できることは、Cygwin X Server の Putty や Cygwin Unix 端末などの代替画面を持つ他の端末を使用することです。または、リモートサーバーでX端末を実行してXサーバーに接続して表示します。または、端末内でGNUなどの代替画面をサポートする端末ベースの端末エミュレータを実行してくださいscreen
。