3

我有一个 shell 脚本变量

$a = "Hello i am pass"

pass现在我想在变量中搜索“ ” $a

if ["$a" == "pass"]; then
echo "`Success`" 
else 
echo "`fail`"
fi

请给我用于搜索 pass 关键字以在上述代码中使用的 shell 脚本。

4

6 回答 6

13

试试这个,

#!/bin/bash
a="Hello i am pass";
if [ `echo $a | grep -c "pass" ` -gt 0 ]
then
  echo "Success"
else
  echo "Fail";
fi
于 2012-06-11T11:36:40.477 回答
5
flag=`echo $a|awk '{print match($0,"pass")}'`;

if [ $flag -gt 0 ];then

    echo "Success";
else
    echo "fail";

fi
于 2012-06-11T11:31:13.667 回答
5

这是一种更紧凑的编写方式:

echo "$a" | grep "pass" && echo "Found." || echo "Not found."

您可以使用大括号来输入多个指令,而不是简单的echo

echo "$a" | grep "pass" && {echo "Found.";exit 0} || {echo "Not found.";exit 1}
于 2014-06-25T10:12:18.347 回答
1

今天我使用扩展选择参数并使用执行 shell 进行字符串匹配。如果有人会发现同样的问题,任何人都可以使用它

if [ `echo $test| grep -c "abc" ` -gt 0 ]

然后回显“成功”,否则回显“失败”;菲

于 2019-02-05T11:25:56.113 回答
0

试试这个

a="Hello I am Pass"; 
a1="Hello, Passed my First Attempt" 
a2="Passed in First Attempt"

if [[ ${a,,} =~ 'pass' ]]; then echo 'Success'; else echo 'First Attempt in Learning'; fi
于 2015-10-16T23:58:11.970 回答
0

短命令:

OPC="test"
PROD="This is a test"
[[ ${PROD,,} =~ $OPC ]] && echo -n 1 || echo -n 0

当在“PROD”中找到“OPC”时,答案将是“1”。

于 2017-08-21T19:55:51.357 回答