shell 变量命名方式:
- 变量中只能包含字母、数字、下划线,不能以数字开头
- 不能包含bash中的关键字
- 变量赋值时,变量和等号 ‘=’ 之间不能有空格
变量赋值
yourname='abc' #注意变量和‘=’之间不能有空格
使用变量时,需要在变量前加$,使用$youname或${yourname}
例子:新建文件,文件内容如下:
yourname='lisen' #变量赋值
echo 'yourname is:' ${yourname}
yourname='lisen_1' #变量二次赋值
echo 'yourname chaged:'${yourname}
运行结果:
- 销毁变量
unset youname #注意,销毁变量不加$
- 声明静态变量: readonly 变量名,静态变量不能unset
将命令返回值赋给变量(重点)
- A=`ls` 反引号,执行里面的命令
- A=$(ls) 等价于反引号
变量类型
1. 局部变量:仅在当前shell中有效,其他shell中不能访问
2. 环境变量:所有的shell中都能访问到
基本语法
export 变量名=变量值,将 Shell 变量输出为环境变量。
source 配置文件路径,让修改后的配置信息立即生效。
echo $变量名,检查环境变量是否生效
3. shell变量:由shell程序设置的特殊变量,如$$表示进程id(PID)
补充:
- $n :$1 代表命令本身、$1-$9 代表第1到9个参数,10以上参数用花括号,如${10}。
- $* :命令行中所有参数,且把所有参数看成一个整体。
- $@ :命令行中所有参数,且把每个参数区分对待。
- $# :所有参数个数。
- $! :后台运行的最后一个进程的 PID 进程号。
- $? :最后一次执行的命令的返回状态,0为执行正确,非0执行失败。