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
추신: 대부분의 출력을 버리는 경우에는 du
이 옵션이 필요하지 않을 것입니다 -a
.