Linux - Shell脚本或命令行中的特殊变量,及exit函数

在linux及unix的shell中,以$开头的字符串表示的是shell中定义的变量,这些变量可以是系统自动定义的,也可以是用户自己定义的。

比如$PATH表示的是系统的命令搜索路径,和windows的%path%是一样的$HOME则表示是用户的主目录,也就是用户登录后工作目录。

使用${ }的形式来引用变量,进行变量替换成相应值。一般情况下,$var与${var}是没有区别的,但是用${ }会比较精确的界定变量名称的范围。

符号

说明

$#

传给脚本的参数个数

$0

脚本本身的名字

$1

传递给该shell脚本的第一个参数

$2

传递给该shell脚本的第二个参数

$n

传递给shell脚本的第n个参数。个位数的,可直接使用数字,但两位数以上,则必须使用 {} 符号来括住,如${10}

$@

传给脚本的所有参数的列表(空格分隔的多个字符串)

$*

以一个单字符串显示所有向脚本传递的参数,中间有空格

$$

脚本运行的当前进程ID号,或当前终端的进程ID

$?

显示最后命令的退出状态,0表示没有错误,其他表示有错误。一般来说,UNIX(linux) 系统的进程以执行系统调用exit() 来结束的。这个回传值就是status值。范围为一个字节,

$!

Shell最后运行的后台Process的PID(脚本中或命令行中)

$-

显示shell使用的当前选项,与set命令功能相同。使用Set命令设定的Flag一览

exit函数:

#include <stdlib.h>

void exit(int status);

这个函数会使进程正常终止,返回给父进程一个值,为status & 0xFF。

参考:

1,Linux中一些变量的意义

Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义_51CTO博客_shell $1 $2

2,Linux中的$符号的各种用法

https://www.cnblogs.com/klausage/p/14058532.html

猜你喜欢

转载自blog.csdn.net/guoqx/article/details/131631251