Can*_*eli 1 osx bash shell-script files osx-finder
我准备了一个小 bash 脚本来切换我隐藏的 OS X 文件的可见性。
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
Run Code Online (Sandbox Code Playgroud)
当隐藏文件不可见时,脚本成功地使它们可见,但之后,当我重新运行脚本以再次使隐藏文件不可见时,它失败并且什么也不做。
我哪里错了?
在if
条件下,您应该使用defaults read
命令,而不是write
. 否则结果始终为真,当然elif
永远不会运行。
此外,这不是if
条件的语法。你应该使用:
if [ $(command) == "TRUE" ]; then
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,也许这样的事情会不那么冗长:
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
Run Code Online (Sandbox Code Playgroud)