shell脚本的一个返回值问题。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本的一个返回值问题。相关的知识,希望对你有一定的参考价值。
7 (( 0 ))
8 echo "Exit status of \"(( 0 ))\" is $?." # 1 此处为什么输入1?
9
10 (( 1 ))
11 echo "Exit status of \"(( 1 ))\" is $?." # 0 此处为什么输入0?
写错了!
应该是这样:
(( 0 ))
echo "Exit status of \"(( 0 ))\" is $?." # 输出结果为1 我想问, 此处为什么输出1?
(( 1 ))
echo "Exit status of \"(( 1 ))\" is $?." # 输出结果为0 我想问, 此处为什么输出0?
结果不为0,则回传真值(0),
算式结果为0,则回传假值 1,
$? exit值 跟 c 语言类似,用来输出一个编码,
一般输出 0 表示执行成功,
1-125 的值表示表示错误码,意味着脚本执行出了问题。
在Bash中,当错误发生在致命信号时,bash会返回128+signal number做为返回值。如果找不到命令,将会返回127。如果命令找到了,但该命令是不可执行的,将返回 126。除此以外,Bash本身会返回最后一个指令的返回值。若是执行中发生错误,将会返回一个非零的值。 参考技术A 首先,要理解 (( )) 这个符号用作数学运算或整数的逻辑比较,一个例子:
[ “$a” -lt 16 ] 等同于 (( a < 16 ))
$?则是返回上一个命令的执行结果,成功(逻辑真)返回0,失败(逻辑假)返回1。
本题中,
(( 0 )) 返回逻辑假(false),所以$?返回1;
(( 1 )) 返回逻辑真(true),所以$?返回0。本回答被提问者和网友采纳
shell脚本调JAVA程序,获取JAVA程序返回值并echo输出
使用shell脚本调用JAVA程序,JAVA执行完后,返回值到shell脚本,shell脚本接收值并echo输出。
请问这个应该怎么做呢?
谢谢。
result=$(java -jar xxx.jar)来获取,当然这只是示例,$()中的命令使可以随便修改的追问
是获取Java main方法的返回值?
追答java中main方法的返回值只能返回给操作系统了,所以这就是取main的返回值啊
追问这不行的,测试过了。
以上是关于shell脚本的一个返回值问题。的主要内容,如果未能解决你的问题,请参考以下文章
Shell 怎么样把一条命令的返回的结果值 赋给一个变量 脚本问题