定义变量时,变量名不加美元符号($,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第二个参数