暗无天日

=============>DarkSun的个人博客

sh比较两字符串时提示unexpected operator

目录

症状

sh -c '[ "${TRAVIS_PULL_REQUEST}" == "false" ] && ./scripts/badge.sh'

提示

[: 1: false: :Unexpected operator

原因

由于archlinux中 sh 其实是 bash 的软链接,因此之前一直没有留意。

其实 sh 中比较两个字符串是需要使用 = 而不是 ==

因此需要改成

sh -c '[ "${TRAVIS_PULL_REQUEST}" = "false" ] && ./scripts/badge.sh'

或者用 [[]] 代替 []

sh -c '[[ "${TRAVIS_PULL_REQUEST}" == "false" ]] && ./scripts/badge.sh'