www.jbmf.net > shEll 命令返回值

shEll 命令返回值

一样的,在shell中$?代表的返回值.执行命令后,可能 通过 $?输出返回值.函数也可以使用这种方法输出

你说的返回值是函数的返回值吗还是一条命令的返回值如果是函数返回值 可以在函数最后用print 或者echo 返回你要的返回值. 这样函数内部处理返回值打印就不可以有其他打印,否则影响返回值.如果是命令执行的返回值也用$()例子: function exmaple1{ input=$1 #函数有一个输入参数 output="${input} stringappend" echo $output # 函数的返回值}outValue=$(exmaple1 “test”) # 将函数的返回值赋值给outValue

echo abcecho $?就是命令执行是否成功返回值,函数也是一样的abc=`echo abc`这是命令返回值

你可以把命令结果重定向到一个变量然后echo变量就可以知道这个值了

示意流程如下: return_code = system("shell command") ; if (return_code == 1) do something ; else if (return_code == 2) do something ; else do something ;

ifconfig eth0|grep eth0|awk '{print $5}' |head -1head命令是取输入的流的头部,可以指定行数tail命令是取输入的流的尾部

1.$?可以获取到diff的返回值2.之所以打印不出echo different大致有两个原因case 1:两个目录内容不一样,无法进入循环case 2:仔细检查语法错误,是否遗漏空格

echo就是回显一个数据,这个数据可以是数字、字符串等.这里显示的是$?表示的数据,该数据的值是2.在linux/unix shell命令行模式,每个指令都有其返回值,用来表示其执行情况.类似于计算机语言中的函数返回值.在这里,你的$?是指令ls listfiles的返回值,其值是2.至于说为什么是2,那啥因为你的文件listfiles不存在,ls指令会失败.如果你在ls listfiles之前touch listfiles,那么$?就应该是0了.试一试吧.linux网站、论坛很多的,CU、linuxsir、linuxforum等,搜索一下吧.

Linux下一条命令或一个进程执行完成会返回一个一个状态码.0 === 成功执行非0 === 执行过程中出现异常或非正常退出

你说的不对,返回值有多种可能,并非只有 0、1 两种.0 成功大于0 不同的值来表示不同的错误原因小于0 一般只用 -1,表示异常显然,成功只要一个返回值即可,而失败时,则需要用不同的值区分不同的原因.这其实并不是 shell 这么设计的,而是整个 *nix 类系统对进程执行结果的统一定义,任何一个兼容的、可移植的程序都应该遵守这一规则.

网站地图

All rights reserved Powered by www.jbmf.net

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