多个字符串到一个字符串比较bash

时间:2018-01-31 00:28:33

标签: linux bash

我有一个shell script如下。它的工作原理是,如果$table包含test,则执行small.sh,elde big.sh

if [[ "$table" =~ "test" ]]
then 
  echo "events"
else
  echo "history"
fi

现在我想检查test中的表格是否包含_test_and_resultssuccessif [[ "$table" =~ "test" ]]

我该怎么做

我试过以下

if [[ "$table" =~ "test" && "$table" =~ "success" ]];
then
    echo "events"
else
    echo "history"
fi

但是当我传递表名abc1_success时,它正在打印history而不是events

我在这里做错了什么

2 个答案:

答案 0 :(得分:4)

abc1_success不包含test_test_and_resultssuccess

它只包含success

这听起来像你想要"或"而不是"和":

table="abc1_success"
if [[ "$table" =~ "test" || "$table" =~ "success" ]];
then
    echo "events"
else
    echo "history"
fi

答案 1 :(得分:0)

如果我理解你的问题,那么你应该使用'或'而不是'和'。即||而不是&&。

只有找到测试和成功时,您当前的脚本才会成立。