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位的八进制值字符