这个0和非0不是判断成功没成功的吗

来源:2-5 退出状态码

CherryJ

2019-11-20

老师 $?不是判断命令成功没成功的吗 ps -ef | grep nginx | grep-v grep就算没有找到进程但是他也执行成功了呀 成功不就是0吗

写回答

1回答

酷田

2019-11-20

在执行这个的时候如果nginx进程不存在,结果没有任何输出,$?会是1,只要可以ps到,则会返回0!正常情形下,$?代表的是上一条命令的返回结果,但如你所说,ps不到nginx也可以理解为正常,但shell在这里会返回1……其他的比如ls /top ,假定目录下没任何内容,$?也会是0……这些内容是shell本身的问题,这些不用纠结,记住就行!shell中还有其他的一些坑,后面课程会讲到……有问题欢迎再交流哈

2
0

掌握Shell脚本编程 360架构师带你进阶Linux高手

30%知识讲解+70%实例操作 掌握Shell脚本编程能力

1638 学习 · 297 问题

查看课程