shell变量
定义
Shell 变量分为 系统变量 和 自定义变量。系统变量有$HOME
、$PWD
、$USER
等,显示当前 Shell 中所有变量:set
。
变量名可以由字母、数字、下划线组成,不能以数字开头。
基本语法
定义变量
shell
变量名=变量值
等号两侧不能有空格,变量名一般习惯用大写。
删除变量
shell
unset 变量名
声明静态变量
shell
readonly 变量名
静态变量不能 unset
。
使用变量
shell
$变量名
将命令返回值赋给变量(重点)
shell
A=`ls` # 反引号,执行里面的命令
A=$(ls) # 等价于反引号
shell环境变量
基本语法
shell
export 变量名=变量值 # 将 Shell 变量输出为环境变量。
source 配置文件路径 # 让修改后的配置信息立即生效。
echo $变量名 # 检查环境变量是否生效
位置参数变量
基本语法
$n
:$0
代表命令本身、$1
-$9
代表第1到9个参数,10以上参数用花括号,如${10}
。$*
:命令行中所有参数,且把所有参数看成一个整体。$@
:命令行中所有参数,且把每个参数区分对待。$#
:所有参数个数。
实例
编写 Shell 脚本 positionPara.sh
,输出命令行输入的各个参数信息。
shell
#!/bin/bash
# 输出各个参数
echo $0 $1 $2
echo $*
echo $@
echo 参数个数=$#
运行
shell
sh positionPara.sh 10 20
positionPara.sh 10 20
10 20
10 20
参数个数=2
预定义变量
在赋值定义之前,事先在 Shell 脚本中直接引用的变量。
基本语法
$$
:当前进程的 PID 进程号。$!
:后台运行的最后一个进程的 PID 进程号。$?
:最后一次执行的命令的返回状态,0为执行正确,非0执行失败。
实例
编写 Shell 脚本 prePara.sh
,输出命令行输入的各个参数信息。
shell
#!/bin/bash
echo 当前的进程号=$$
# &:以后台的方式运行程序
./hello.sh &
echo 最后一个进程的进程号=$!
echo 最后执行的命令结果=$?
运行
shell
sh prePara.sh
当前的进程号=2638
最后一个进程的进程号=2639
最后执行的命令结果=0
hello world!