![置換可能なテキストは端末にどのように表示されますか? [コピー]](https://linux33.com/image/51135/%E7%BD%AE%E6%8F%9B%E5%8F%AF%E8%83%BD%E3%81%AA%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%AF%E7%AB%AF%E6%9C%AB%E3%81%AB%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
たとえば、実行後に同じ行にパーセンテージの変化を表示しますapt-get update
。
Reading package lists... 82%
これはどのように達成されますか? bashスクリプトでこれを使用できますか?
答え1
ターミナルは、カーソルの移動、テキストの色の変更、およびその他の操作のためのエスケープシーケンスを理解します。これらのエスケープシーケンスは、次の文書で説明されています。用語キャップそして用語情報データベースは端末タイプによって異なります(現在、ほとんどの端末タイプはほとんど同じエスケープシーケンスを実装していますが)
次のコマンドを使用して、アプリケーションの出力全体を記録できます。スクリプト便利です。
script -c 'apt-get update' apt-get.script
apt-get
簡単にするには:制御文字のみを使用してください。入力する(CR、Ctrl + M、\r
...と呼ばれる)カーソルを現在の行の先頭に移動します。
答え2
まだ新しい行を出力していない場合(例:-Necho コマンドでは、) コマンドは次のようになります。
echo -e "\r\033["
動作します。