我有一个重复运行测试的shell脚本:
#!/bin/tcsh
set x = 1
while ($x <= 10000)
echo $x
./test
@ x += 1
end
我正在尝试调整它以打破循环并在测试失败时停止运行,即测试可执行文件以非零状态返回。我认为以下改变是有效的。
#!/bin/tcsh
set x = 1
set y = 0
while ($x <= 10000 && $y == 0)
echo $x
@ y = ./test
@ x += 1
end
但是,我收到错误@: Expression syntax
你能否告诉我我做错了什么,以及如何在变量中捕获./test
的返回值以便我可以打破循环,或者在遇到测试失败时打破循环的其他方法
答案 0 :(得分:2)
我不喜欢csh中的脚本,我强烈建议反对它。但是,在这种情况下,csh似乎做了正确的事情,你可以简单地做:
#!/bin/tcsh
set x = 1
while ($x <= 10000)
echo $x
./test || break
@ x += 1
end