IT序号网

shell 小工具知识解答

luoye 2021年05月25日 程序员 157 0

1.打印进度条(待完善)

#!/bin/sh 
printf -- 'Performing asynchronous action..'; 
DONE=0; 
printf -- '...................'; 
while [ $DONE -lt 10 ]; do 
 printf -- $DONE 
 sleep 1; 
 let DONE++ 
done; 
printf -- ' DONE!\n';

2.检查命令可用性

#!/bin/sh 
_=$(command -v docker); 
if [ "$?" != "0" ]; then 
 printf -- 'You don\'t seem to have Docker installed.\n'; 
 printf -- 'Get it: https://www.docker.com/community-edition\n'; 
 printf -- 'Exiting with code 127...\n'; 
 exit 127; 
fi; 
# ...

3.加载效果

i=0 
sp='/-\|' 
n=${#sp} 
printf ' ' 
sleep 0.1 
while true; do 
    printf '\b%s' "${sp:i++%n:1}" 
    sleep 0.1 
done

说明:

n=${#sp}获取字符串的长度
   ${sp:i++%n:1}   字符串截取 第一个冒号后表示开始截取的位置,第二个冒号表示截取的长度
 printf format-string [arguments...]
    

printf的转义序列

序列                     说明

\a                        警告字符,通常为ASCII的BEL字符

\b                       后退

\c                       抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的

                         参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及

                         任何留在格式字符串中的字符,都被忽略

\f                      换页(formfeed)

\n                    换行

\r                      回车(Carriage return)

\t                      水平制表符

\v                    垂直制表符

\\                      一个字面上的反斜杠字符

\ddd                表示1到3位数八进制值的字符。仅在格式字符串中有效

\0ddd              表示1到3位的八进制值字符

 
 


发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Windows 如何在cmd命令行中查看、修改、删除与添加环境变量知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。