我写了一个不可靠的模糊测试。我添加了一些调试代码,但现在我想运行测试,直到它失败,这样我就可以收集调试输出。
我已经设置了测试,因此可以使用:
./runtest
我目前的解决方案是编写一个until失败
脚本:
#!/bin/bash
$@
while [ $? -eq 0 ]; do
$@
done
然后使用它:
untilfail ./runtest
有更简单的解决方案吗?
在到处复制shell重试逻辑的系统中遇到类似问题后,我制作了一个专用工具来解决这个问题,称为“重试”:
retry --until=fail ./runtest
一个更复杂的例子:
retry --until=fail --message="test succeeded" --delay=1 ./runtest
工具可从https://github.com/minfrin/retry.
如果您不想将复杂的管线封装到shell脚本或函数中,则可以这样做:
while true; do
curl -s "https:..." | grep "HasErrors.:true"
if [[ "$?" -ne 0 ]]; then
break
fi
sleep 120
done
在这种情况下,HTTP请求总是返回200,但也返回一些JSON,该JSON具有属性“HasError”:当出现错误时为true。
而
需要一个命令来执行,因此您可以使用更简单的
while ./runtest; do :; done
这将在时停止循环/runtest
返回非零退出代码(通常表示失败)。
不过,要进一步简化当前的解决方案,只需将untilfail脚本更改为如下所示:
#!/bin/bash
while "$@"; do :; done
然后您可以使用您已经使用的任何命令调用它:
untilfail ./runTest --and val1,val2 -o option1 "argument two"
问题内容: 我在一个应用程序上工作,但有一个关于从Java应用程序运行shell命令的问题。这是代码: 但是当我尝试执行命令时: myapp读取 为两个单独的参数。但是我只想读取一个参数。 当我直接从终端运行此命令时,它执行成功。 我试过,, 但对我没有工作。我如何才能将此参数作为一个参数读取。 问题答案: 我记得exec方法的重载分别为参数提供了一个参数。你需要用那个 对。就这个 只需将命令行和
我想使用从gulp运行shell命令。我看到下面这个成语被用于gulpfile。 这是从吞咽任务中运行命令的惯用方法吗?
当我在命令行中运行TestNG时,抛出异常: c:\test>java org.testng.testng testng.xml线程“main”java.lang.noClassDefounderror:com/beust/jcommander/parameterexception在java.lang.class.getDeclaredMethods0(本机方法)在java.lang.class.
我有一个案例,我想问我可以解决与Spring壳。我有一个Main.jar应用程序,它有几个部署在Wildly服务器上的Spring任务。在我的例子中,我不能停止或重新部署main.jar,因为必须不停地提供服务。
问题内容: 我的Linux机器上有一个名为images的文件夹。此文件夹已连接到网站,该网站的管理员可以向该网站添加图片。但是,添加图片后,我希望命令运行所有图片的目录大小。 简而言之,我想知道在将新文件添加到特定位置时如何使服务器运行特定命令。 问题答案: 我不知道人们是如何将内容上传到此文件夹的,但是您可能想要使用比通过inotify监视目录更低的技术。 如果协议是FTP,并且您可以访问FTP
问题内容: 我想在我的C程序中运行Shell命令。但问题是我不想让我的程序等到命令执行完毕。无需读取shell命令的输出(无论如何它都不会返回数据)那么,基本上可以吗? 问题答案: 并且是你所需要的