我正在学习 shell 脚本。在某些教程中有一个我无法理解的示例行。谁能告诉我下面代码中第一行的含义?
format="%8s%10s%10s %-s\n"
printf "$format" "Dirs" "Files" "Blocks" "Directory"
total_dirs=$(find $HOME -type d | wc -l)
total_files=$(find $HOME -type f | wc -l)
total_blocks=$(du -s $HOME)
printf "$format" $total_dirs $total_files $total_blocks
我的问题是关于拳头线的下半场。
- 关于“空间”的使用:
如果 $3 和 $4 之间有 3 个空格,那么输出的行在 $3 和 $4 之间也有 3 个空格?
- 关于“%-s\n”部分:
此示例代码中的“-(连字符)”是什么意思?即使我删除了它,我也得到了相同的输出结果。
bash shell 内置从相应的
C
例程继承其格式说明符,因此最有用的参考通常是man 3 printf
. 从那里: