@yiltoncent
2015-10-27T13:57:16.000000Z
字数 493
阅读 3153
LINUX
Shell
看公司产品代码,发现一段代码比较奇怪:
为什么用fread
一个流之后,要判断第一个自己是不是为0,刚开始思维一直挂在popen
函数本身,上网搜了许久也没发现什么。忽然看到popen
打开shell
语句的最后一句:
echo $?
这才恍然大悟,原来是shell特殊变量的问题。
这儿有一个链接,里面列举了常用特殊变量的意义,这儿摘录一下:
变量 | 含义 |
---|---|
$0 | 当前脚本的文件名。 |
$n | 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 |
$# | 传递给脚本或函数的参数个数。 |
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 |
$? | 上个命令的退出状态,或函数的返回值。 |
$$ | 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 |
$?变量表示在当前shell
中上一次命令的返回值,如果上一个命令成功执行则$?的值为0,否则为其他非零值,常用做if
语句条件。
现在回头看代码里面的处理,一目了然。Linux
里面天地宽广,学习之路道阻且长。