Bash如果条件

时间:2013-04-26 01:33:17

标签: macos bash shell

我想写一个查看security list-keychains的bash脚本,看看是否有一个名为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

1 个答案:

答案 0 :(得分: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. 双括号特殊命令需要[[]]周围的空格才能正常工作。
相关问题