숨겨진 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 read
write
elif
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