파일을 숨기거나 표시하는 Bash 스크립트

파일을 숨기거나 표시하는 Bash 스크립트

숨겨진 OS X 파일의 가시성을 전환하기 위해 작은 bash 스크립트를 준비했습니다.

if (defaults write com.apple.finder AppleShowAllFiles FALSE); then
    defaults write com.apple.finder AppleShowAllFiles TRUE
elif (defaults write com.apple.finder AppleShowAllFiles TRUE); then
    defaults write com.apple.finder AppleShowAllFiles FALSE
fi

killall Finder

숨겨진 파일이 표시되지 않으면 스크립트가 성공적으로 표시되지만 숨겨진 파일을 다시 표시하지 않도록 스크립트를 다시 실행하면 실패하고 아무 작업도 수행되지 않습니다.

내가 어디서 잘못됐나요?

답변1

이 경우 대신 if해당 명령을 사용해야 합니다 . 그렇지 않으면 결과는 항상 true가 되며 물론 실행되지 않습니다.defaults readwriteelif

if또한 이는 조건문의 구문 이 아닙니다 . 다음을 사용해야 합니다.

if [ $(command) == "TRUE" ]; then

하지만 이 경우에는 다음과 같은 내용이 덜 장황할 수 있습니다.

STATUS=$(defaults read com.apple.finder AppleShowAllFiles)
case "$STATUS" in
    "TRUE") OPTION="FALSE" ;;
    "FALSE") OPTION="TRUE" ;;
esac
defaults write com.apple.finder AppleShowAllFiles $OPTION

killall Finder

관련 정보