该函数的返回值与 linux命令返回值两者的转换关系为:
该函数的返回值(十进制)转化成16位的二进制数,截取其高八位(如果低位数是0的情况下,有关 *** 作系统的错误码共 131个,所以低位都是零),
然后转成十进制数即为 linux命令返回值。
$?表示shell执行的上一条命令的退出状态值,退出状态为0,代表上一条命令执行成功并退出,返回值为1表示,上一条命令执行失败,如果系统调用失败,则返回值为2本人认为去一些论坛网站就很适合linux初学者,比如 http://www.chinaunix.net/, http://os.51cto.com/linux/,书籍方面,建议看《鸟哥的Linux私房菜》,如果要是想学shell 建议看UNIX shell 范例精解(第四版)这本书,希望可以我的回答可以给你些许帮助.
echo就是回显一个数据,这个数据可以是数字、字符串等。这里显示的是$?表示的数据,该数据的值是2.在linux/unix shell命令行模式,每个指令都有其返回值,用来表示其执行情况。类似于计算机语言中的函数返回值。在这里,你的$?是指令ls listfiles的返回值,其值是2.至于说为什么是2,那啥因为你的文件listfiles不存在,ls指令会失败。如果你在ls listfiles之前touch listfiles,那么$?就应该是0了。试一试吧。linux网站、论坛很多的,CU、linuxsir、linuxforum等,搜索一下吧。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)