Linux 输出 Linux 输出$?查看上一条命令的执行状态是否存在并发问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
MadDoggy
V2EX    Linux

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

  •  
  •   MadDoggy 2021-07-23 15:16:02 +08:00 2822 次点击
    这是一个创建于 1548 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    10 条回复    2021-08-04 17:50:00 +08:00
    snuglove
        1
    snuglove  
       2021-07-23 15:28:41 +08:00
    命令是按照一行计算执行是否成功的,不存在并发问题吧.
    yfugibr
        2
    yfugibr  
       2021-07-23 15:29:33 +08:00 via Android
    结果写入特定文件?
    Jirajine
        3
    Jirajine  
       2021-07-23 15:29:50 +08:00 via Android   1
    $?是 shell 的,你 Java 执行命令和 shell 有啥关系?
    chendy
        4
    chendy  
       2021-07-23 15:32:15 +08:00
    直接取进程返回值就行,为啥还要 用$?
    KagurazakaNyaa
        5
    KagurazakaNyaa  
       2021-07-23 15:38:04 +08:00
    Java 执行其他命令未必是通过 shell 吧,而且就算是通过 shell,也无法确保你获取$?的语句在同一个 shell 环境下,所以我觉得你不如直接获取返回值
    wms
        6
    wms  
       2021-07-23 16:06:20 +08:00
    fork waitpid
    ch2
        7
    ch2  
       2021-07-23 16:40:28 +08:00
    每个命令由单独的 shel 执行就不会有问题,但是 1 个 shell 至少 2 个进程,开销自己算
    imKiva
        8
    imKiva  
       2021-07-23 20:16:34 +08:00
    Process#waitFor() 返回的就是退出状态
    libook
        9
    libook  
       2021-07-23 20:26:56 +08:00 via Android
    我的理解是 Shell 的状态只和当前会话有关,不会说多个 Shell 共享状态,所以你在当前 Shell 最后一个返回的指令会被你的$?取到值。那么问题来了,Shell 都是一条一条执行的,你是用什么方式让一个 Shell 回话并发执行多条命令的呢?这个得根据具体情况来看。
    blessingsi
        10
    blessingsi  
       2021-08-04 17:50:00 +08:00
    如果用 Process 的话,直接通过 exitValue() 拿到返回值呀,为啥还要 $? 呢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     912 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 20:08 PVG 04:08 LAX 13:08 JFK 16:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86