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'