在 linux console 下編寫一些 script 時,為了表示 script 還有在運作,常用一個 rotating animation 或著 dot animation 來讓 script 看起來有在動作。那麼在 linux 下要如何呈現這種效果呢?

while [ true ];

do
  i=$((++i%4 + 2));
  printf '\b|/-\' | cut -b 1,$i | tr -d '\n';
  sleep 1;
done

關鍵是利用\b及tr -d '\n',達成同個位置不斷呈現不同文字。再搭配 cut 來輕鬆的在|/-\四個字元中輪播。當然,習慣用 echo 的,也可以把當中的 printf 換成 echo

echo -e '\b|/-\' | cut -b 1,$i | tr -d '\n';

 

Reference:

http://stackoverflow.com/questions/10470139/creating-rotating-circle-using-characters-in-shell-script

創作者介紹
創作者 diro 的頭像
diro

Diro - 探索生活中的美好事物

diro 發表在 痞客邦 留言(0) 人氣()