printf命令

-- TOC --

就像C语言中的printf函数一样,命令行的printf一样也是用来处理各种复杂格式的输出。echo的输出太过于简单了,因此有了printf!

格式化语法方面,基本上与C语言一样,只是在命令行使用,没有括号和逗号。

$ printf "%16s\n" cs.pynote.net
   cs.pynote.net
$ printf "%.2f\n" 1.23456
1.23

注意,printf默认没有末尾的\n,需要自己添加!

下面是用echo和printf实现的相同的让用户等待的功能,利用\r转义符号:

for i in $(seq 10 -1 1); do
    echo -en "\r[echo] please wait $i "
    sleep 1
done
echo ""

for i in $(seq 10 -1 1); do
    printf "\r[printf] please wait %d " $i
    sleep 1
done
echo ""

注意显示的数字后面有个空格,用来刷新那个位置。

本文链接:https://cs.pynote.net/sf/linux/shell/202201052/

-- EOF --

-- MORE --