macOSディレクトリのファイルが占めるスペース全体を返すbashスクリプトを作成しようとしています ~/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
。