2012-03-30 64 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