2013-05-09 31 views
0

我写在~/.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 The database manager is already active 

if语句如何测试中决定下一步该做什么?

我想

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

给了我一个语法错误......我不知道还有什么要尝尝。

回答

3

正确的语法是

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

[[]]是单令牌;中间不允许有空间。

+0

注意到... – 2013-05-09 04:23:12

2
 
if [ [ $DB2START =~ ^(SQL1036N|SQL1026N)$ ] ]; then dosomething; fi 
    ^         ^
    \         /
     --- no space here  or here ---