我有一个shell script
如下。它的工作原理是,如果$table
包含test
,则执行small.sh
,elde big.sh
。
if [[ "$table" =~ "test" ]]
then
echo "events"
else
echo "history"
fi
现在我想检查test
中的表格是否包含_test_and_results
,success
和if [[ "$table" =~ "test" ]]
。
我该怎么做
我试过以下
if [[ "$table" =~ "test" && "$table" =~ "success" ]];
then
echo "events"
else
echo "history"
fi
但是当我传递表名abc1_success
时,它正在打印history
而不是events
。
我在这里做错了什么
答案 0 :(得分:4)
abc1_success
不包含test
,_test_and_results
和success
。
它只包含success
。
这听起来像你想要"或"而不是"和":
table="abc1_success"
if [[ "$table" =~ "test" || "$table" =~ "success" ]];
then
echo "events"
else
echo "history"
fi
答案 1 :(得分:0)
如果我理解你的问题,那么你应该使用'或'而不是'和'。即||而不是&&。
只有找到测试和成功时,您当前的脚本才会成立。