最近、現在のtermcap / terminfo設定に応じて、端末制御コードを「正常に」出力できるトリックを見ましたが、見つかりませんでした。私が正しく覚えている場合は、次のことを行うことができます。
echo "$(some_command home)"
エコーされるのはエスケープシーケンスの実際のバイトであり、これによりカーソルが$TERM
後ろに移動します。そのコマンドは何ですか?
ベストアンサー1
私が見るコマンドは、tput
私の質問のように人々が使うことができます。
echo -n "$(tput home)"
もちろん、この特別な例は重複しています。tput
独自のstdoutに書き込むパラメータとしてstdoutを実行するのは無駄です。echo
文字列を生成する必要がある場合は、この方法がより適している可能性がありますecho -n "$(tput thing1)some text$(tput thing2)other text
。しかし、@icarusが以下のコメントで指摘したように、これを行うと文字列が失われます。タイミングトリックを知ってくださいtput
。
したがって、可能な場合はいつでもユーティリティを直接呼び出すのが最善です。
tput clear
tput blink
echo "DANGER WILL ROBINSON"
tput bel
sleep 5
reset # NOTE: this might be symlinked to tput also!
コア/組み込みツールではありませんが、ncursesの一部として提供されるため、広く使用する必要があります。私が一つ見つけた良い紹介/概要これはいくつかの背景情報を提供し、関連するコマンドも表示します。そしてこの点エクスポートできるすべての名前付き「機能」の便利なリストが含まれています。