我希望打印
$ 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:
行?
答案 0 :(得分:3)
从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}')
答案 1 :(得分:1)
您可以使用:
printf "pwd: %s size:%s\n" "$(pwd)" "$(du -sh)"
但是,如果您不想使用“。”最后,您可以使用:
printf "pwd: %s size:%s\n" "$(pwd)" "$(du -sh | cut -d '.' -f1)"