機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

bashでアニメーション

プログラミング

“now loading…”みたいな、動く文字列っていうのは、どうやってBashで表現したら良いのでしょうか。

こんな感じ。

chars="/\\"

while :; do
  for (( i=0; i<${#chars}; i++ )); do
    echo -en "running... ${chars:$i:1}" "\r"
    sleep 1
        # Do something you like
    . "/mnt/c/pg/detect_changes/detect_changes_in_a_directory_contacam.sh"
  done
done

running… /

running… \
の動きを一秒おきに繰り返して、ちゃんと動いてるよーってことを教えてくれつつ、コマンドラインは1行だけで動いてるので、途中でほかのメッセージが入ってきても読みやすいです。

また、こういうやり方もあります。


echo -ne '##### (33%)\r' sleep 1 echo -ne '############# (66%)\r' sleep 1 echo -ne '####################### (100%)\r' echo -ne '\n'

こちらは、whileループを回してる間に恒久的にアニメーションを続ける先述のやり方と違って、
1から100まで進捗の度合いが決まっている場合に使用できます。

なので、ループの中で使うって言うより、スクリプトの合間合間に使う感じでしょうか。

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

bashからwindowsのユーザー名を出力する
Bashで!(エクスクラメーション)をエスケープするには
BashでISO8601のタイムスタンプをdateで出力
Bash コマンドが存在するかパターンマッチで判断するには
WindowsにCicaフォントをインストールしてconemuのWSL bashで使えるようにする
WSL bashでpowershellに絶対パスのファイルを渡して開く方法
bash yes no yes以外なら終了する


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu