隠された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