Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用grep在While循环的shell输出中查找短语_Shell_Loops_While Loop_Grep - Fatal编程技术网

使用grep在While循环的shell输出中查找短语

使用grep在While循环的shell输出中查找短语,shell,loops,while-loop,grep,Shell,Loops,While Loop,Grep,您好,我不熟悉shell脚本,希望使用带有while循环和grep的终端命令来表示输出中的某个短语“TEST\u PASS”或“TEST\u Skip”或“TEST\u Failed” 如果终端输出中出现短语“TEST_PASS”,则退出循环 否则,如果输出中有短语“Test_Skip”或“Test_Failed”,则再次重试命令 我以为会是这样的: while ! #Command# | grep -i "TEST_PASS" 任何帮助都会很好 非常感谢这个怎么样 <your comm

您好,我不熟悉shell脚本,希望使用带有
while循环
grep的终端命令来表示输出中的某个短语“TEST\u PASS”或“TEST\u Skip”或“TEST\u Failed”

如果终端输出中出现短语“TEST_PASS”,则退出循环

否则,如果输出中有短语“Test_Skip”或“Test_Failed”,则再次重试命令

我以为会是这样的:

while ! #Command# | grep -i "TEST_PASS"
任何帮助都会很好

非常感谢

这个怎么样

<your command goes here> | grep -q "TEST_PASS"
retry=`echo $?`
while [ $retry -ne 0 ]
do
    <your command goes here> | grep -q "TEST_PASS"
    retry=`echo $?`
done
echo "Test Passed!"
| grep-q“测试通过”
重试=`echo$`
而[$retry-ne 0]
做
|grep-q“测试通过”
重试=`echo$`
完成
echo“测试通过!”
这个怎么样

<your command goes here> | grep -q "TEST_PASS"
retry=`echo $?`
while [ $retry -ne 0 ]
do
    <your command goes here> | grep -q "TEST_PASS"
    retry=`echo $?`
done
echo "Test Passed!"
| grep-q“测试通过”
重试=`echo$`
而[$retry-ne 0]
做
|grep-q“测试通过”
重试=`echo$`
完成
echo“测试通过!”

我喜欢它,但是你不能用
yourcommand | grep-q'TEST\u PASS'
避免
output.txt
?。不管怎样,回答都很好。谢谢@DavidC.Rankin!我也是一个脚本新手,不知道
-q
选项!刚刚查看了手册页,它会派上用场:)这一切都是随时间而来的。您已经很好地掌握了脚本编写,现在只需收集微妙之处<代码>:)
(这只是一个不断学习的过程,除了Ed和Charles之外,没有人能真正做到这一点——你会在这里看到……)你能解释一下代码是如何工作的吗?while[$retry-ne 0]做什么?@AliAshram
echo$?
给出上次命令运行的退出状态。0表示成功,任何非零表示失败
$retry
是命令的退出状态(带有
grep-q“TEST\u PASS”
)。如果退出状态为0,则您的命令生成TEST_PASS。如果退出状态不是0,那么您的命令生成的Test\u失败或Test\u跳过。我喜欢它,但您不能用
yourcommand | grep-q“Test\u PASS”
避免
output.txt
?。不管怎样,回答都很好。谢谢@DavidC.Rankin!我也是一个脚本新手,不知道
-q
选项!刚刚查看了手册页,它会派上用场:)这一切都是随时间而来的。您已经很好地掌握了脚本编写,现在只需收集微妙之处<代码>:)(这只是一个不断学习的过程,除了Ed和Charles之外,没有人能真正做到这一点——你会在这里看到……)你能解释一下代码是如何工作的吗?while[$retry-ne 0]做什么?@AliAshram
echo$?
给出上次命令运行的退出状态。0表示成功,任何非零表示失败
$retry
是命令的退出状态(带有
grep-q“TEST\u PASS”
)。如果退出状态为0,则您的命令生成TEST_PASS。如果退出状态不是0,则命令生成的测试失败或跳过测试。