数组变量:
1.单个赋值 name[index]=value
example:
$a[1]=5
$echo ${a[1]}
5
2.一次赋多个值 name=(value1 value2 value3........)有空格分开(separated by space)
example1:
$a=(hello, how are you)
$echo ${a[0]}
hello,
example2:
$a=("hello, how are you" I ok)
$echo ${a[0]}
hello, how are you
输出数组中的所有项
example:
$echo ${a[*]}or
$echo ${a[@]}
只读变量
一旦定义了,就不能更改。标量和数组均可以定义。unset也不能用,直到shell退出为止。
通过readonly命令标记为只读。
example:
$readonly a
现在a是一个只读的数组。
删除变量
unset name
当数组a没有被定义为只读时
example:
$unset a
环境变量,局部变量,shell变量
在一个shell中定义的变量,就是局部变量。
通过export命令放置到环境中的局部变量:
export name
example: name=value;
export name
shell变量,是在shell初始化的时候被设定并内部运用的变量。
follow variables is used by shell, but can be modify by script
CDPATH:为了简化cd命令而提供的一组经冒号分隔开的目录
HOME:用户的主目录
IFS:内部的域分隔符号
OPTARG:最后一个由getopts处理的命令行参数
OPTIND:由getopts(korn/bash)处理的最后一个命令行参数的索引
PATH:当查找一个不包含/的命令时,搜索由冒号分隔开的目录的列表,以查找该命令
PS1:主shell提示字符串
PS2: 第二个shell提示字符串,用于续行
PWD: 返回当前目录 RANDOM: 每次引用时都返回0~32767之间的不同的随机数(仅限ksh,bash和zsh)
REPLY: 从经过选择的命令里读入的最后一行(仅限ksh,bash和zsh)
SECONDS: 返回从shell被调用开始到现在所经历的秒数
SHLVL: 返回当前shell的递归调用层次数
UID: 返回用户ID的值