Bash
用於隱藏/顯示文件的 Bash 腳本
我準備了一個小 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
當隱藏文件不可見時,腳本成功使它們可見,但之後,當我重新執行腳本以使隱藏文件再次不可見時,它失敗並且什麼也不做。
我哪裡錯了?
在
if
條件下你應該使用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