我正在尝试创建一个 bash 脚本,该脚本将返回 macOS 目录中文件占用的总空间 ~/Pictures/Photos\ Library.photoslibrary/Masters/
。
#!/bin/bash
# AUTHOR:SWASTI BHUSHAN DEB
# Platfrom:macOS
# macOS High Sierra 10.13.
#Checks the total space occupied by files within a directory
read -e -p "Enter the full path to the Home Directory : userpath
var=$(sudo du -ach $userpath/Photos\ Library.photoslibrary/Masters/|tail -1|awk '{print $1}')
echo "$var"
exit
在终端中单独使用时,以下命令可提供所需的结果:
`du -ach ~/Pictures/Photos\ Library.photoslibrary/Masters/|tail -1|awk '{print $1}'
25G
但是当将 $userpath 放入上面的脚本中时,脚本遇到错误:
du: /Volumes/Macintosh: No such file or directory
du: HD/Users/swastibhushandeb/Pictures/Photos Library.photoslibrary/Masters/: No such file or directory
0B
我不确定这有什么问题。欢迎任何评论/建议/示例脚本代码
答案1
使用变量时需要引用它们,否则带有空格和其他特殊字符的路径将不起作用:
read -e -p "Enter the full path to the Home Directory :" userpath
var=$(sudo du -ach "$userpath/Photos Library.photoslibrary/Masters/" |tail -1|awk '{print $1}')
echo "$var"
exit
PS:当你扔掉大部分输出时,du
你可能不需要这个-a
选项。