www.lydf.net > shEll脚本 Exit值

shEll脚本 Exit值

在子脚本中可以通过如下形式返回成功0或错误码(1~255): exit [返回值] 其中,返回值的取值范围为0~255,因为UNIX/POSIX中是用一个无符号8比特数值来表示exit返回码的。你若写exit -1,它会给你转为255。

当你 exit 0 的时候,在调用环境 echo $? 就返回0,也就是说调用环境就认为你的这个程序执行正确当你 exit 1 的时候,一般是出错定义这个1,也可以是其他数字,很多系统程序这个错误编号是有约定的含义的。 但不为0 就表示程序运行出错。 调用环境...

这个||叫逻辑或运算符 执行的时候先执行语句1,如果语句1执行成功(退出状态为0)就跳过后面的语句。比如你这个例子里的语句1成功就不会执行exit 1,语句1不成功就会执行exit 1。Shell会尽量保证操作符前后的语句有一个执行成功。 与这个类似的...

如果中途用exit命令退出,没有exit命令就会继续执行下面的命令 如果exit命令是在最后,有没有都一样

exit 表示这个程序退出,结束了 exit 2 表示这个程序退出后,它的返回值是2。 可以理解为这个程序死了,它的遗言是2,告诉别人自己是因为什么原因死掉的。这样法医(shell或它的父进程)就可以知道原因,来判断凶手(程序出错)是谁,从而作进一...

没有看到你的code,但你的理解没错的,shell 执行exit 会自己退出的。 不成功估计有两个原因: java 调用shell是否直接跑到后台?有没有设置抓到shell返回值再继续跑? shell 中exit command没有执行成功,这个细心要debug了。

$? 指代的是上一条指令的执行结果 exit 0 和 1 是shell 执行结果的返回值 如果你执行这个shell,然后在终端里打echo $? 此时的值应该就是exit后面跟的值

改成 send “exit \$ret\r” ret 变量是 ssh 到远端后shell里面定义的 (即你之前的send "ret=`echo $?`\r") ,所以要把 $ 用 \ 转意,否则 $ret 指的是 expect 里的ret变量,你在 expect 里当然没有定义过这个变量了,所以出错。

在需要退出的命令后加上exit 0

break一般用在循环中,用于跳出循环(但不一定会退出代码段(函数等)) 而Exit是用于退出相关的代码段(如函数)等。它与循环无关

网站地图

All rights reserved Powered by www.lydf.net

copyright ©right 2010-2021。
www.lydf.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com