0

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

#!/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

给我一个语法错误...我不知道还能在这里尝试什么。

4

2 回答 2

3

正确的语法是

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

和是单个标记[[]]中间不允许有空格。

于 2013-05-09T04:14:31.483 回答
2
如果 [ [ $DB2START =~ ^(SQL1036N|SQL1026N)$ ] ]; 然后做点什么;菲
    ^ ^
     \ /
      --- 这里或这里没有空间 ---
于 2013-05-09T04:15:33.737 回答