gpt4 book ai didi

linux - bash 脚本从上次失败的地方执行

转载 作者:IT王子 更新时间:2023-10-29 00:39:30 25 4
gpt4 key购买 nike

谁能告诉我如何编写一个脚本从上次停止的地方执行。我的 bash 脚本包含 24 个按顺序执行的脚本文件。但是,如果任何一个脚本失败,下次我执行脚本文件时,我不希望脚本从 script1 开始,而是应该从上次失败的地方开始。请指教。

最佳答案

一种粗略的方式:

#!/bin/bash
# Needs bash 4 or later, for `;&` to work
[ "$1" = "--frest_start" ] && rm statusfile

touch statusfile
read status < statusfile
[ "$status" = "" ] && status=0

case $status in
0) ./script1; echo 1 > statusfile ;&
1) ./script2; echo 2 > statusfile ;&
2) ./script3; echo 3 > statusfile ;&

# ....... & so on till

23) ./script24; echo 24 > statusfile ;;

esac

但是通过 Makefile 来做似乎也是一个很好的解决方案...

.NOTPARALLEL
.PHONY: all frest_start

all:
make step1
make step2
make step3
....
make step24

step%: script%
"./$<"
touch "$@"

frest_start:
rm step*
make all

关于linux - bash 脚本从上次失败的地方执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32991795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com