bash - bash printf重复行
问题描述
我希望打印
$ pwd: /home/me/actual_folder size: 5.3M
和:
$ cat test.sh
printf 'pwd: %s size:%s\n' `pwd` `du -sh .`
$
但我得到:
$ sh test.sh
pwd: /tmp/actual_folder size:5.3M
pwd: . size:
$
如何避免最后pwd: . size:
一行?
解决方案
从 的输出中删除点du
:
printf 'pwd: %s size: %s\n' `pwd` `du -sh . | cut -f1`
否则,第二个命令替换输出两个单词,因此 printf 看到 3 个参数,因此它重复第二对的模板(点和空)。
您也可以直接使用 pwd 作为 du 的参数,但您需要反转输出的顺序:
printf 'pwd: %s size: %s\n' $(du -sh $(pwd) | awk '{print $2, $1}')
推荐阅读
- bash - sed 模式部分作为其他 bash 函数的输入
- python - Vscode 无法使用“转到定义”功能,无法在 PROBLEMS 中打开文件
- c# - 右键单击单词建议(Hunspell)
- bash - 将 zip 文件批量重命名为原始名称,但删除部分名称
- java - 没有错误:但 XSLT 转换没有通过 Javax.xml.transform 发生
- css - 为什么无法在占位符上堆叠 CSS 跨浏览器规则?
- excel - 如何使用我的所有工作表名称创建一个可自动更新的命名范围?
- c++ - 从源代码安装 grpc 时出现“make: protoc: Command not found”
- windows-server-2012 - 无法启动 Automation Anywhere 控制室:网关错误
- django - Django:comment_create() 出现意外的关键字参数“pk”错误