shell 小工具

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格式指示符控制下的

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

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

扫描二维码关注公众号,回复: 5843236 查看本文章

\f                      换页(formfeed)

\n                    换行

\r                      回车(Carriage return)

\t                      水平制表符

\v                    垂直制表符

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

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

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

 
 

猜你喜欢

转载自www.cnblogs.com/cangqinglang/p/10687427.html