Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2811

シェルスクリプトで待ち時間にスピナーを表示する

$
0
0

関数

function spinner (){local i=0
  local spin='/-\|'local n=${#spin}while true;do
      sleep 0.5
      echo-en"${spin:i++%n:1}$*\r"done}

説明

  • n=${#spin}: spinという変数の文字列の長さを取得しています
  • echo -e: -eオプションを指定すると\rのようなエスケープシーケンスを解釈するようになります
  • echo -n: 改行しないようにします
  • ${<文字列>:n:m}: 文字列のn文字目からm文字分の長さの部分文字列
  • i++%n: iの数値をnで割ったあまりを返してiに1を加えます
  • $*: spinner関数に渡された引数を全て出力します
  • \r: キャリッジリターン。カーソル位置を行頭に戻します

使用例

spinner waiting... & pid=$!
:
(時間のかかる処理)
:
kill$pidwait$pid 2> /dev/null

参考


Viewing all articles
Browse latest Browse all 2811

Trending Articles