命名规则:
1、命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
2、中间不能有空格,可以使用下划线(_)。
3、不能使用标点符号。
4、不能使用bash里的关键字(可用help命令查看保留关键字)
使用规则:
1、习惯用大写字母来命名变量
2、赋值时,”=”前后不能有空格
3、命令的执行结果赋值给变量时,使用反单引号
如:TIME=`date`
4、使用变量时,使用 $变量名 或 ${变量名}
只读变量:使用readonly。此命令可以将变量定义为只读变量,只读变量的值不能被改变
删除变量:使用unset。变量删除后不能再次被使用,unset不能删除只读命令
临时变量:也叫局部变量,在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
永久变量:也叫环境变量,所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
位置变量和特殊变量
Shell解释用户执行的命令时,会将命令行的一串字符进行解析划分成很多部分。每个部分都有一个固定的变量名$n,不能自定义。
$n: n从0开始,依次往后+1。从$1开始 叫位置参数变量。大于等于10时,必须使用{}将数字括起来。
ls –la file1 file2 file3 ….. file10
$0 的值为:ls -la
$1 的值为file1
…….
${10} 的值为file10
特殊变量
$* :获取所有参数合并成一个字符串
$# :获取参数的个数
$$ :当前进程的ID
$! :后台运行的最后一个进程的ID
$? :最后一个命令的退出状态,0表示没有错误