Bash 仅从失败的命令重新运行shell脚本

Bash 仅从失败的命令重新运行shell脚本,bash,shell,Bash,Shell,我编写了bash脚本来读取包含命令的文件的每一行,并逐个执行它们,当命令失败时停止 while read -r line do $line || exit 1 done< /root/ansi-pb/sample.txt 我想临时编写这个脚本,所以如果我遇到任何失败的命令,我会在文本文件中更正它,当我重新运行脚本时,它应该只从失败的命令开始,而不是从开始 我怎样才能做到这一点?哎哟。这是Ansible的反模式用法。这是尝试使用Ansible的一种奇怪的方式,而不是它的设计目的。不要使用s

我编写了bash脚本来读取包含命令的文件的每一行,并逐个执行它们,当命令失败时停止

while read -r line
do
$line || exit 1
done< /root/ansi-pb/sample.txt
我想临时编写这个脚本,所以如果我遇到任何失败的命令,我会在文本文件中更正它,当我重新运行脚本时,它应该只从失败的命令开始,而不是从开始


我怎样才能做到这一点?

哎哟。这是Ansible的反模式用法。这是尝试使用Ansible的一种奇怪的方式,而不是它的设计目的。不要使用stderr内容来识别失败。这就是存在退出状态的原因;使用它。我同意其他评论者的观点,ansible对于这项工作来说是错误的工具……如果你想要一个外壳函数来包装一个命令,将一段状态写入磁盘,指示我们在多步骤任务中的哪一步,如果太早就跳过这一步,等等,那么你可以这样做——但作为外壳函数;ansible增加了大量不必要的、无用的复杂性和开销。如果我上面描述的是您的最终目标,请将该最终目标作为一个单独的问题询问,
@
-通知我,我很乐意帮助您。
echo "hello world"
free -m
mvn -version
date
echo "bye"