2013-04-26 73 views
0

我想編寫一個bash腳本,查看security list-keychains以查看是否有名爲appledev的鑰匙串。如果沒有鑰匙串,我想用這個創建它security create-keychain -p foo appledevBash如果條件

我試圖這樣的東西,但它是可笑的不正確。

APPLEDEVKEYCHAIN=`security list-keychains | grep appledev` 
if [[$APPLEDEVKEYCHAIN -eq 1]]; then 
    echo "Using keychain ${APPLEDEVKEYCHAIN}" 
else 
    echo "Creating Keychain appledev" 
    security create-keychain -p foo appledev 
fi 
exit 

回答

3

grep如果發現任何內容,則返回成功退出代碼。下面將工作:

if security list-keychains | grep -q appledev; then 
    echo "Got keychain" 
else 
    echo "Creating keychain" 
    security create-keychain -p foo appledev 
fi 

-q是「安靜」切換到grep,這樣可以防止grep從打印任何東西。)

一些其他的東西,可能與您的Bash shell腳本幫助:

  1. 反向引用已過時並且容易出錯。改爲使用$(command)
  2. 當使用命令替換($(command)(或,天堂禁止,反引號))時,在替換周圍放置雙引號。
  3. 雙支架特殊命令需要[[]]附近的空格才能工作。