Bash完了機能中の出力テキスト

Bash完了機能中の出力テキスト

bash完了ツールがインストールされています。私が達成したい特定のフラグ値の1つは、サードパーティプログラムへの外部呼び出しを必要とし、これは非常に遅いです。でも大丈夫です。すべて動作します。いくつかのローカルファイルキャッシュを追加することで、私のツールユーザーは数日に一度だけこのファイルをチェックするだけです。

問題は、遅い速度がユーザーにあまり慣れていないように見えることです。私は、ユーザーがキャッシュがどのように機能するかを知る必要がないことを願っています。ただし、キャッシュが汚れている場合は、書き換えるのに約15秒待つ必要があります。このデータをロードしていることを示すために何かを追加したいと思います。

単純なものを追加しようとしましたが、興味深いことに、タブをecho "Querying <third party tool>..."もう一度クリックするまで完了結果が実際には表示されないようです(おそらくキャッシュが汚れたときにのみエコーされ、タブを2回クリックするとキャッシュされた読み取りから直接開始されるため)。 )。 stderrにエコーしようとしましたが、同じ結果が得られました。

タブの読み込みが完了すると、他のツールに読み込みアイコンが表示されるのを見たことがあります。gcloud完了すると表示されることは注目に値します--project。しかし、私は彼らがどのようにこれを行うかについての兆候を見つけることができませんでした。

ベストアンサー1

以下は少しアニメーションです。

animation() {
  tput civis
  while true; do
    for i in {1..3}; do
      echo -ne "."
      sleep 1
    done
    for i in {1..3}; do
      echo -ne "\b \b"
      sleep 1
    done
  done
  tput civvis
}

kill_animation() {
  kill $anim
  echo
}

echo -n "Loading" && animation & anim=$!

sleep 10

kill_animation

結果は次のとおりです。

ここに画像の説明を入力してください。

おすすめ記事