Unix/Linux命令行的使用是一门艺术,-也有艺术性:

(1)-可以当做来自stdin文件的文件名,这个时候是链接两个文件的,中间有空格。如下所示:

echo "hello world!" | cat - file.txt

hello world!打印在显示器上,对echo命令来说,它是标准输出的数据,但是对于|命令来说,它就是标准输入的数据,而-就是用来代替的来自stdin文本的文件名,其实这种文件名并不是存在的,-就是一个临时占位符而已。

注意:而echo "hello world!" | cat -n,这个时候的打印出行号的。

(2)-可以表示左对齐,用于printf函数中

printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。默认 printf 不会像 echo 自动添加换行符,我们可以手动添加 n。

printf "%-10s %-8s %-4s\n"   姓名 性别 体重kg  
printf "%-10s %-8s %-4.2f\n" 张三 男 61.1234 
printf "%-10s %-8s %-4.2f\n" 李四 男 62.5678
printf "%-10s %-8s %-4.2f\n" 王五 男 63.1234

%s、%f都是格式替代符。
%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-4.2f 指格式化为小数,其中.2指保留2位小数。

标签: none

[网站公告]-[2024年兼职介绍]


添加新评论