我正在尝试学习shell脚本。很抱歉,如果我的问题很简单。
我有一个名为one.txt的文件,如果字符串中存在字符串1.2或1.3,那么我必须显示成功消息,否则显示失败消息。
我试过的代码如下,
#!/bin/bash
echo "checking"
if grep -q 1.2 /root/one | grep -q 1.3 /root/one; then
echo " vetri Your NAC version"
fi
我在这里做错了什么?
答案 0 :(得分:0)
您必须使用||
#!/bin/bash
echo "checking"
if grep -q 1.2 /root/one || grep -q 1.3 /root/one; then
echo " vetri Your NAC version"
fi
单|
运算符称为管道。它会将|
之前的命令输出传递给|
之后的命令。
答案 1 :(得分:0)
您还可以在grep模式中包含OR,如下所示:
grep '1.2\|1.3' /root/one
详情here
更新: 正如twalberg在评论中指出的那样,我的答案不够准确。更好的模式是:
grep '1\.2\|1\.3' /root/one
甚至更好,因为更紧凑:
grep '1\.[23]' /root/one
答案 2 :(得分:0)
最好将这些greps与|
(OR运算符):
grep '1.2\|1.3'
或
grep -E '1.2|1.3'
答案 3 :(得分:0)
我想更简单的方法是创建一个变量来检查出现次数:
#!/bin/bash
echo "checking"
CHECK=`egrep -c '1\.(2|3)' /root/one`
if [ "$CHECK" -gt 0 ]; then
echo "vetri Your NAC version"
fi