2012-03-30 102 views
1

我經常在由 - ,/和\組成的命令提示符/ shell中看到旋轉動畫。這種類型的打印只是簡單地覆蓋已存在的打印內容,也用於顯示使用命令行應用程序下載內容的進度。 這是如何完成的?命令行動畫

+0

您指的是哪個操作系統?它在Windows/Unix命令行中可能會有所不同。 – 2012-03-30 18:59:53

+1

[如何爲命令行添加動畫?](http://stackoverflow.com/questions/60221/how-to-animate-the-command-line) – 2012-03-30 19:00:28

回答

4

通常這通過打印退格字符(ASCII code 8),然後打印序列中的下一個字符來完成。在大多數編程語言中,您只需在字符串中使用\b即可。

例如,這裏是一些Python代碼此:

import time 
import sys 
sys.stdout.write(' ') 
while True: 
    for c in ('/', '-', '\\', '|'): 
     time.sleep(1) 
     sys.stdout.write('\b' + c) 
     sys.stdout.flush() 
1

如前所述,你通常可以用退格字符,\b做到這一點。這裏有一個簡單的例子bash(因爲您沒有指定平臺,我選擇了一個;)):

#!/bin/bash 

spin_states=(- \\ \| /) 

function spin { 
    echo -n "Working... " 
    for ((i=0; i<$1; i++)) 
    do 
     state=$((i % ${#spin_states[@]})) 
     echo -ne "\b${spin_states[state]}" 
     sleep .1 # A "real" script would probably do something useful here 
    done 
    echo 
} 

spin 100