Linux 输出 Linux 输出$?查看上一条命令的执行状态是否存在并发问题

2021-07-23 15:16:02 +08:00
 MadDoggy

项目需要用 java 执行命令行命令,通过$?判断执行情况,是否存在并发的问题;有什么其他判断的好方法也可以赐教,感谢

2264 次点击
所在节点    Linux
10 条回复
snuglove
2021-07-23 15:28:41 +08:00
命令是按照一行计算执行是否成功的,不存在并发问题吧.
yfugibr
2021-07-23 15:29:33 +08:00
结果写入特定文件?
Jirajine
2021-07-23 15:29:50 +08:00
$?是 shell 的,你 Java 执行命令和 shell 有啥关系?
chendy
2021-07-23 15:32:15 +08:00
直接取进程返回值就行,为啥还要 用$?
XiLingHost
2021-07-23 15:38:04 +08:00
Java 执行其他命令未必是通过 shell 吧,而且就算是通过 shell,也无法确保你获取$?的语句在同一个 shell 环境下,所以我觉得你不如直接获取返回值
wms
2021-07-23 16:06:20 +08:00
fork waitpid
ch2
2021-07-23 16:40:28 +08:00
每个命令由单独的 shel 执行就不会有问题,但是 1 个 shell 至少 2 个进程,开销自己算
imKiva
2021-07-23 20:16:34 +08:00
Process#waitFor() 返回的就是退出状态
libook
2021-07-23 20:26:56 +08:00
我的理解是 Shell 的状态只和当前会话有关,不会说多个 Shell 共享状态,所以你在当前 Shell 最后一个返回的指令会被你的$?取到值。那么问题来了,Shell 都是一条一条执行的,你是用什么方式让一个 Shell 回话并发执行多条命令的呢?这个得根据具体情况来看。
blessingsi
2021-08-04 17:50:00 +08:00
如果用 Process 的话,直接通过 exitValue() 拿到返回值呀,为啥还要 $? 呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/791324

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX