我想編寫一個執行安裝相關任務的shell腳本。我想通過打印字符|,/,\, - 來顯示一些像旋轉圓圈的圖標。一旦安裝完成,此圈將消失。任何幫助,將不勝感激。使用字符|,/,, - 在shell腳本中創建旋轉圓圈
回答
接受的解決方案過於複雜。你可以這樣做:
while sleep 1; do
i=$((++i%4 + 2));
printf '\b|/-\' | cut -b 1,$i | tr -d '\n';
done
(請注意,一秒睡覺是不可移植的,也不是起)
echo -e 'abc\bd'
^^---backspace char
將輸出
abd
所以基本上你想輸出你的動畫字符之一,那麼輸出退格,然後輸出下一個字符,等等
你需要'-e'選項來'echo'。 – huon
哎呀,對。謝謝。編輯答案 –
大廈馬克B的回答,下面是一個簡單的演示:
spin() {
chars="|/– \\"
rotations=3
delay=0.1
for i in `seq 0 $rotations`; do
for char in $chars; do
echo -ne $char
sleep $delay
echo -ne '\b'
done
done
}
將它粘貼到您的終端並鍵入'旋轉'。
更新:此版本同時適用於bash和zsh。
spin() {
char=(\|/– \\)
charLastIndex=3
rotations=3
delay=0.1
for i in `seq 1 $rotations`; do
for j in `seq 0 $charLastIndex`; do
echo -n ${char[$j]}
sleep $delay
echo -ne '\b'
done
done
}
更新:liori的版本可以在多個殼。
spin() {
rotations=3
delay=0.1
for i in `seq 0 $rotations`; do
for char in '|' '/' '-' '\'; do
#'# inserted to correct broken syntax highlighting
echo -n $char
sleep $delay
printf "\b"
done
done
}
注意:在bash中工作,但不在zsh中。 – liori
@liori,你知道一種讓回聲在zsh中行爲的方法,或者一種解決方法嗎?它似乎包括回聲後的部分提示。 –
嗯,zsh不喜歡空間作爲字段分隔符。 –
這裏是POSIX外殼符合版本:
while true; do for x in '|' '/' '-' '\'; do printf '\b$x'; sleep 1; done; done
注意,如副作用您的價值x
將被覆蓋。爲了避免這種附帶說明的功能。
既然你不指定外殼,爲fish shell,在此可以很優雅地使用數組來完成一個小插件:
set -l symbols ◷ ◶ ◵ ◴
while sleep 0.5
echo -e -n "\b$symbols[1]"
set -l symbols $symbols[2..-1] $symbols[1]
end
在這種情況下,symbols
是一個數組變量,並將內容如果它被旋轉/移位,因爲$symbols[2..-1]
都是條目,但是第一個。
- 1. OpenTK圓圈旋轉
- 2. 在特定中心旋轉圓圈
- 3. OpenGL的圓圈旋轉
- 4. 旋轉圓圈問題
- 5. Objective C-在圓圈中旋轉指針
- 6. 使用thread.sleep創建javafx中的圓圈()
- 7. 使用畫布在J2ME中旋轉圓圈
- 8. 用文字創建CSS3圓圈
- 9. 創建使用使用UNIX Shell腳本
- 10. 沿着一個圓圈旋轉鏈接
- 11. 如何在WPF中創建一個帶圓圈的圓圈?
- 12. shell腳本中文件的旋轉
- 13. 使用printf如何在shell腳本中轉義特殊字符?
- 14. jq - 如何在shell腳本中轉義'*'(特殊字符)?使用
- 15. 如何使用畫布從圓圈內的字符串文本創建位圖?
- 16. 在C中連續創建圓圈#
- 17. 如何創建一個旋轉圈?
- 18. 圍繞圓圈旋轉圖像?
- 19. 圍繞圓圈旋轉組別單獨
- 20. shell腳本創建目錄
- 21. javafx加載時旋轉圓圈
- 22. 計算結束旋轉圓圈
- 23. 在ActionScript 3中創建10個圓圈
- 24. 使用CSS在圓圈內創建圓形
- 25. 在Bash Shell腳本中創建.csv
- 26. 如何在文本下創建點/小圓圈?
- 27. 使用sin和cos在java中創建一個圓圈移動
- 28. 使用Javascript在圓圈圖案中創建破折號數學
- 29. 在WPF中使用ArcSegment創建倒計時圓圈
- 30. 使用和在shell腳本和進程創建在Unix中
謝謝。這很棒。我需要嘗試一下這個解決方案,並且一旦我從我的會議中解脫出來就會明白它的工作原理。 – user419534