V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
MadDoggy
V2EX  ›  Linux

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

  •  
  •   MadDoggy · 62 天前 · 1265 次点击
    这是一个创建于 62 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    10 条回复    2021-08-04 17:50:00 +08:00
    snuglove
        1
    snuglove   62 天前
    命令是按照一行计算执行是否成功的,不存在并发问题吧.
    yfugibr
        2
    yfugibr   62 天前 via Android
    结果写入特定文件?
    Jirajine
        3
    Jirajine   62 天前 via Android   ❤️ 1
    $?是 shell 的,你 Java 执行命令和 shell 有啥关系?
    chendy
        4
    chendy   62 天前
    直接取进程返回值就行,为啥还要 用$?
    XiLingHost
        5
    XiLingHost   62 天前
    Java 执行其他命令未必是通过 shell 吧,而且就算是通过 shell,也无法确保你获取$?的语句在同一个 shell 环境下,所以我觉得你不如直接获取返回值
    wms
        6
    wms   62 天前
    fork waitpid
    ch2
        7
    ch2   62 天前
    每个命令由单独的 shel 执行就不会有问题,但是 1 个 shell 至少 2 个进程,开销自己算
    imKiva
        8
    imKiva   62 天前
    Process#waitFor() 返回的就是退出状态
    libook
        9
    libook   62 天前 via Android
    我的理解是 Shell 的状态只和当前会话有关,不会说多个 Shell 共享状态,所以你在当前 Shell 最后一个返回的指令会被你的$?取到值。那么问题来了,Shell 都是一条一条执行的,你是用什么方式让一个 Shell 回话并发执行多条命令的呢?这个得根据具体情况来看。
    blessingsi
        10
    blessingsi   50 天前
    如果用 Process 的话,直接通过 exitValue() 拿到返回值呀,为啥还要 $? 呢
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1069 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:34 · PVG 05:34 · LAX 14:34 · JFK 17:34
    ♥ Do have faith in what you're doing.