【问题标题】:Bash - how to run command based on match/unmatch results from regexBash - 如何根据正则表达式的匹配/不匹配结果运行命令
【发布时间】:2013-05-09 04:01:00
【问题描述】:

我正在~/.bashrc 中编写一个 Linux bash 函数来自动为我做一些事情

#!/bin/bash
......
......

function cog102start
{
    LD_LIBRARY_PATH=/opt/ibm/cognos/c102_6/cgi-bin
    httpd64start
    DB2START=$(sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2start)

    ________need something here_________
}

DB2START 的输出将包含任一

SQL1036N DB2START process was successful

SQL1026N 数据库管理器已经处于活动状态

如何在 if 语句中进行测试以决定下一步做什么?

我正在努力

if [ [ $DB2START =~ ^(SQL1036N|SQL1026N)$ ] ]; then dosomething; fi

给我一​​个语法错误...我不知道这里还有什么可以尝试的。

【问题讨论】:

    标签: regex bash shell command-line


    【解决方案1】:

    正确的语法是

    if [[ $DB2START =~ ^(SQL1036N|SQL1026N)$ ]]; then dosomething; fi
    

    [[]] 是单个令牌;中间不能有空格。

    【讨论】:

      【解决方案2】:
      如果 [ [ $DB2START =~ ^(SQL1036N|SQL1026N)$ ] ];然后做点什么;菲 ^ ^ \ / --- 这里或这里没有空间 ---

      【讨论】:

        猜你喜欢
        • 2021-06-23
        • 2016-11-10
        • 2015-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多