2011-03-05 114 views
3

前言:我是一個完整的bash noob。用簡單的bash腳本切換AppleShowAllFiles?

我想寫一個簡單的腳本來切換我的mac上的AppleShowAllFiles。

我想是這樣的:

#!/bin/bash 
#toggle AppleShowAllFiles 

if defaults read com.apple.finder AppleShowAllFiles == TRUE 
then 
    defaults write com.apple.finder AppleShowAllFiles FALSE 
else 
    defaults write com.apple.finder AppleShowAllFiles TRUE 
fi 

killall Finder 

似乎也沒有工作,但我相信你們中的一個會來砸它在1秒內持平;請開始抨擊並幫助失去的靈魂!

謝謝。

回答

3

這裏是你的腳本的一個固定的版本:

#!/bin/bash 
#toggle AppleShowAllFiles 

current_value=$(defaults read com.apple.finder AppleShowAllFiles) 
if [ $current_value = "TRUE" ] 
then 
    defaults write com.apple.finder AppleShowAllFiles FALSE 
else 
    defaults write com.apple.finder AppleShowAllFiles TRUE 
fi 

killall Finder 

腳本的if語法有點...好,前途未卜。這就是需要改變的一切。

+0

'-eq'是一個數字比較。此外,這樣的括號是'csh'語法,而不是Bash等。 – 2011-03-05 19:47:35

+0

修復了這兩個問題。爲了記錄,該腳本在此之前仍然有效。 – 2011-03-05 19:50:58

+0

優秀!對此感激不盡。是否有任何理由首先聲明current_value var,或者下面仍然可以接受的形式:if [[defaults read com.apple.finder AppleShowAllFiles' =「TRUE」] – James 2011-03-05 20:14:33

3

這應該爲你工作:

if [[ $(defaults read com.apple.finder AppleShowAllFiles) == TRUE ]] 
+1

+1給我展示了謂詞短語的另一種方式。有助於我的新穎性。 – James 2011-03-05 20:27:21

+0

@James:使用'$()'](http://mywiki.wooledge.org/BashFAQ/082)比反引號更好。 – 2011-03-05 20:32:09

+0

啊,是的,從那個帖子看起來確實如此。它也更像我習慣於其他語言的東西。感謝您的提升。 – James 2011-03-06 02:53:33

0

顯示隱藏文件在Mac

啓動終端,如圖所示準確輸入這些命令。 第一個命令激活看到隱藏文件的功能:

默認寫com.apple.Finder AppleShowAllFiles TRUE

現在,你必須殺死它重新啓動Finder中,這是如何變化的生效:

killall Finder