Bash

用於隱藏/顯示文件的 Bash 腳本

  • July 13, 2013

我準備了一個小 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

引用自:https://unix.stackexchange.com/questions/82883