是否可以启动Spring-Shell应用程序的特定命令,然后在命令完成后返回/退出shell ?此外,是否有可能将应用程序的退出代码(system .exit)暴露给操作系统外壳?
为了我的目的,我将利用插件机制和Spring-Shell的cli注释。但一般来说,没有人与应用程序交互,而是一个作业调度器(UC4)将启动应用程序并检查退出代码,以便在退出代码不等于0的情况下生成电子邮件。另一方面,对于我们客户的手动测试,还需要tab补全,使用帮助等。
这个行为已经是内置的(尽管我们考虑过删除它,或者至少使它成为可选的)。我现在看到它是有用的:)
只需用(唯一的)命令调用shell, shell就会启动、执行命令并退出。此外,shell的返回代码已经表明是否存在错误(例如,尝试使用不存在的命令)。当然,如果您的自定义命令没有正确指示错误(即打印错误消息,但执行正常返回),这将不起作用。你应该抛出一个异常。
行为又回来了
使用@my-script运行spring-shell,如下所示:
java -jar my-app.jar @my-script
my-script是包含命令的文件:
my-command1 arg1 arg2
my-command2 arg1 arg2