我有一段travis,它检查cassadra_version env变量.
if [ ! -z ${CASSANDRA_VERSION} ]; then ./setup-cassandra.sh; fi;
我想只有在没有名为deploy的标签的情况下才能运行.
我试过了:
if [ ! -z ${CASSANDRA_VERSION} ] && [ "${TRAVIS_TAG}" =~ '^((?!deploy).)*$' ]; then ./setup-cassandra.sh; fi;
但它给我一个二元运算符错误
if [ [! -z ${CASSANDRA_VERSION} ] && [ "${TRAVIS_TAG}" =~ '^((?!deploy).)*$' ]]; then ./setup-cassandra.sh; fi;
也给了我一个错误
if [ [! -z ${CASSANDRA_VERSION} ] && [ ${TRAVIS_TAG} =~ '^((?!deploy).)*$' ]]; then ./setup-cassandra.sh; fi;
也.
然后我也尝试过:if [$ {TRAVIS_TAG} =〜'^((?!deploy).)*$']; 然后./setup-cassandra.sh; 网络连接;`
它还给了我二元运算符.
我没有正确地做正则表达式吗?
你不远,你的主要问题是它~=不是一个通用的测试操作符,而是一个bash特定的操作符.要使用这些bash高级测试操作符,必须使用双括号.
这将有效:
if [ ! -z ${CASSANDRA_VERSION} ] && [[ "${TRAVIS_TAG}" =~ ^((?!deploy).)*$ ]]; then ./setup-cassandra.sh; fi;
好吧,如果你的正则表达式是正确的;)
要了解有关这些改进运营商的更多信息,请访问:http://mywiki.wooledge.org/BashFAQ/031
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |