shell 中的特殊变量

定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:

your_name="runoob.com"

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。

  • 不能使用bash里的关键字(可用help命令查看保留关键字)

变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。

$0 获取当前执行脚本的文件名包括路径

    dirname $0     只取当前执行脚本的路径 

     dirname 输出已经去除了尾部的"/"字符部分的名称;如果名称中不包含"/",则显示"."(表示当前目录)。

    basename $0    只取当前执行脚本的文件名

     basename 去掉前导的目录部分后打印"名称"。如果指定的话,还会去掉尾随的"后缀".

$#  获取执行命令行(脚本)参数的总个数

$@ 执行程序的所有参数

$*  获取当前shell 的所有参数(注意与$@区别)

    $* 和 $@ 的区别

    $*和$@都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以 $1 $2 .. $n 的形式输出所有参数。

    但是当它们被双引号“”包含时,"$*" 会将所有的参数作为一个整体,以 “$1 $2 $3 ... $n”的形式输出所有参数;"$@" 会将各个参数分开,以 "$1"  "$2" ...."$n"的形式输出所有参数。


$! 上一个执行命令的PID

$$ 获取当前shell的PID

$_ 在此之前执行的命令或者脚本的最后一个参数

$? 上一个命令的退出状态,即上一个命令执行后的返回结果。

    返回值:  0表示运行成功 2全县拒绝 1-125运行失败,脚本命令、系统命令或者参数传递错误 126找到了命令,但无法执行 127 未找到要运行的命令 128命令被系统强制结束

$n 传递给脚本或函数的参数。n是一个数字,表示第几个参数。如:$1第一个参数,$2第二个参数






猜你喜欢

转载自blog.csdn.net/zhangxueleishamo/article/details/80194506