首页 理论教育 LinuxShell编程实用指南

LinuxShell编程实用指南

时间:2023-11-18 理论教育 版权反馈
【摘要】:字符界面下的进度指示有打点方式,还有旋转指示。在主程序里,有一个while循环,i从1循环到100,i为函数progress的第一个参数。函数progress中第一条命令的作用是:i被4除,取余数,将余数赋给变量_per。函数progress的第一个printf中的\r的作用是让光标回到行首,保证四个字符|、/、-和\出现在同一位置,给人以旋转感。函数progress的第二个参数的值是固定值100。

LinuxShell编程实用指南

字符界面下的进度指示有打点方式,还有旋转指示。旋转指示就是四个字符|、/、-和\依次较快速地出现在同一位置,不断循环,给人以旋转的感觉。看脚本progress.sh,它由一个函数progress和主程序组成。在主程序里,有一个while循环,i从1循环到100,i为函数progress的第一个参数。

函数progress中第一条命令的作用是:i被4除,取余数,将余数赋给变量_per。当i=1时,_per=i/4%4=1,_char=/;当i=2时,_per=i%4=2,_char=-;当i=3时,_per=i%4=3,_char=\;当i=4时,_per=i%4=0,case命令中的_char=|……以此类推。

函数progress的第一个printf中的\r的作用是让光标回到行首,保证四个字符|、/、-和\出现在同一位置,给人以旋转感。如果去掉\r,光标就不能回到行首,运行结果变成了这样(去掉\r之后的脚本为progress_no_return.sh):

这个结果也不错,可以看清字符随着百分比的增长是如何变化的。(www.xing528.com)

函数progress的第二个参数的值是固定值100。函数progress的第二个printf命令的作用是:当第一个参数与第二个参数相等时,也就是当第一个参数为100时(即从1循环到最后一个值时),打印换行符\n。

主程序中的命令sleep 0.1不是必须的,去掉它的话,脚本运行时,百分比变化很快,一下子就从1%变为100%。有了命令sleep 0.1,脚本运行时,可以看见百分比变化过程。脚本最终运行结果为:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈