Shell 脚本,如果失败则停止 运行
Shell script, stop running if failed
我有一个 shell 重复运行测试的脚本:
#!/bin/tcsh
set x = 1
while ($x <= 10000)
echo $x
./test
@ x += 1
end
我正在尝试调整它以打破循环并在测试失败时停止 运行,即测试可执行文件 return 处于非零状态。我认为以下更改会起作用。
#!/bin/tcsh
set x = 1
set y = 0
while ($x <= 10000 && $y == 0)
echo $x
@ y = ./test
@ x += 1
end
但是,我收到错误 @: Expression syntax
你能告诉我我做错了什么吗,以及如何在变量中捕获 ./test
的 return 值,以便我可以打破循环,或者其他一些方法来打破循环遇到测试失败时循环
我不喜欢在 csh 中编写脚本,我强烈反对它。但是,在这种情况下,csh 似乎做对了,您可以简单地做:
#!/bin/tcsh
set x = 1
while ($x <= 10000)
echo $x
./test || break
@ x += 1
end
我有一个 shell 重复运行测试的脚本:
#!/bin/tcsh
set x = 1
while ($x <= 10000)
echo $x
./test
@ x += 1
end
我正在尝试调整它以打破循环并在测试失败时停止 运行,即测试可执行文件 return 处于非零状态。我认为以下更改会起作用。
#!/bin/tcsh
set x = 1
set y = 0
while ($x <= 10000 && $y == 0)
echo $x
@ y = ./test
@ x += 1
end
但是,我收到错误 @: Expression syntax
你能告诉我我做错了什么吗,以及如何在变量中捕获 ./test
的 return 值,以便我可以打破循环,或者其他一些方法来打破循环遇到测试失败时循环
我不喜欢在 csh 中编写脚本,我强烈反对它。但是,在这种情况下,csh 似乎做对了,您可以简单地做:
#!/bin/tcsh
set x = 1
while ($x <= 10000)
echo $x
./test || break
@ x += 1
end