如何从特定点重新启动脚本?
How to restart a script from a specific point?
有没有办法制作这个脚本
#!/bin/bash
X=0
while true; do
if [ $X -eq 10 ]; then
sudo rm -r /var/log/daemon.log
sudo rm -r /var/log/syslog
sudo reboot
fi
expressvpn disconnect
while timeout 2 ./typer; [ $? -eq 124 ]
do
exec [=10=]
let X++
done
done
如果命令超时,从语句X=0
之后重新启动,这样计数器就不会重置?我正在使用 exec [=12=]
但每次我猜
时它都会重置计数器
您可以使用标志来完成相同的操作。
在脚本的开头创建一个标志文件,并在结束脚本之前删除该文件。
并在您想要中断的任何地方检查标志条件。
从 timer="${1-0}"
(计时器的默认值)开始,然后 exec [=11=] "${timer}"
以在后续运行中保持计时器值。
另一个优点是,这使您能够轻松测试超时时发生的情况 - 只需使用值 10 调用它即可。
PS:为了安全起见,您的 -eq
应该是 -ge
(大于或等于),以防错误将计时器增加两个。
有没有办法制作这个脚本
#!/bin/bash
X=0
while true; do
if [ $X -eq 10 ]; then
sudo rm -r /var/log/daemon.log
sudo rm -r /var/log/syslog
sudo reboot
fi
expressvpn disconnect
while timeout 2 ./typer; [ $? -eq 124 ]
do
exec [=10=]
let X++
done
done
如果命令超时,从语句X=0
之后重新启动,这样计数器就不会重置?我正在使用 exec [=12=]
但每次我猜
您可以使用标志来完成相同的操作。 在脚本的开头创建一个标志文件,并在结束脚本之前删除该文件。 并在您想要中断的任何地方检查标志条件。
从 timer="${1-0}"
(计时器的默认值)开始,然后 exec [=11=] "${timer}"
以在后续运行中保持计时器值。
另一个优点是,这使您能够轻松测试超时时发生的情况 - 只需使用值 10 调用它即可。
PS:为了安全起见,您的 -eq
应该是 -ge
(大于或等于),以防错误将计时器增加两个。