0

我想编写一个 bash 脚本security list-keychains来查看是否有一个名为 appledev 的钥匙串。如果没有钥匙串,我想用这个创建它security create-keychain -p foo appledev

我试图做这样的事情,但这是非常不正确的。

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
4

1 回答 1

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. 双括号特殊命令需要在[[and周围有空格]]才能工作。
于 2013-04-26T01:42:58.440 回答