为什么我的POSIX shell脚本退出?

为什么我的POSIX shell脚本退出?,shell,debugging,sh,posix,Shell,Debugging,Sh,Posix,我不是shell脚本方面的专家,但是如果我下面的脚本是以-1选项启动的,或者没有该选项,我会尝试避免退出 我看不到错误在哪里(?)换句话说,脚本以100%的速度工作,直到我记不起我改变了什么;除了在处理第一个循环结束时意外退出(传递-1选项或等待它,都是一样的) 整个剧本如下: 我建议将这一行改写为if语句 test "$#" -eq 1 || print_error_and_exit 14 "mouse_click_coords(): Coordinates must be in pairs

我不是shell脚本方面的专家,但是如果我下面的脚本是以
-1
选项启动的,或者没有该选项,我会尝试避免退出

我看不到错误在哪里(?)换句话说,脚本以100%的速度工作,直到我记不起我改变了什么;除了在处理第一个循环结束时意外退出(传递
-1
选项或等待它,都是一样的)

整个剧本如下:



我建议将这一行改写为if语句

test "$#" -eq 1 || print_error_and_exit 14 "mouse_click_coords(): Coordinates must be in pairs!" }
在我看来,即使
$#
是NEQ1,它仍然会评估OR的另一半

用伪代码澄清

If parameter count = 1 then
print error
end if

我建议将这一行改写为if语句

test "$#" -eq 1 || print_error_and_exit 14 "mouse_click_coords(): Coordinates must be in pairs!" }
在我看来,即使
$#
是NEQ1,它仍然会评估OR的另一半

用伪代码澄清

If parameter count = 1 then
print error
end if

你能把它减少到最小可能的脚本,它仍然有意外的行为()?你能把它减少到最小可能的脚本,它仍然有意外的行为()?谢谢你,除了这一行之外,我还关注了脚本中的所有其他内容:)有时产生错误真的很有趣。没问题。这是我的第一个答案。多年来我一直在引用堆栈溢出,我想我应该试着回馈一下。谢谢你,除了这一行之外,我还关注了脚本中的其他内容:)有时候错误是如何产生的,这真的很有趣。没问题。这是我的第一个答案。多年来我一直在考虑堆栈溢出问题,我想我应该试着回馈