Skip to content

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!