用户自定义变量
取值
双引号:允许通过$符号引用其他变量值
弱引用,其中的变量引用会被替换为变量值
单引号:禁止引用其他变量值,$视为普通字符
强引用,其中的变量引用不会被替换为变量值,而保持源字符串
反撇号:命令替换,提取命令执行后的输出结果,``和$(…)作用相同
数组
echo $a:默认显示数组a的第一个元素
echo ${a[0]}:显示数组中第一个元素,以此类推
echo ${a[-1]}:显示数组中最后一个元素
echo ${a[*]} 和echo ${a[@]}:显示数组中所有元素
echo ${#a[@]}:显示数组中元素的个数
echo ${a[@]:起始元素id:元素个数]}:显示数组中以起始元素为首的指定个数的元素(注意:这里起始元素id不能为负值
unset a[n] 删除数组中的第n个元素
unset a 删除a这个数组
只读变量
变量值不允许修改(重新赋值)的情况
无法使用unset删除
最快方法重启
readonly
位置变量和预定义变量
$0与键入的命令行一样,包含脚本文件名
$1,$2,……$9 ${10} 分别包含第一个到第十个命令行参数
$#包含命令行参数的个数
$@包含所有命令行参数:“$1,$2,……$9”
$*包含所有命令行参数,是一个整体:“$1,$2,……$9”
$?包含前一个命令的退出状态
$$包含正在执行进程的ID号
环境变量
常用环境变量
$USER表示用户名称
$HOME表示用户的宿主目录
$LANG表示语言和字符集
$PWD表示当前所在工作目录
$PATH表示可执行用户程序的默认路径
export可以将变量指定为全局变量