变量(variable)就是内存中一个命了名的临时存储区

变量分为以下三类

变量赋值

自定义变量

对于自定义变量,赋值方法如下面的例子

var1=xibei
unset var1

进行赋值时,应遵守如下规则

  • 变量不可以用数字开头
  • 默认变量为字符串
  • =两侧不可以有空格

对于变量的调用,使用 $

echo $var1

Tips

调用变量名时,可以使用花括号以避免歧义,如:

  • $sample
  • ${sample}

Important

自定义变量只对当前终端/shell 有效

环境变量

对于环境变量,赋值与删除方法如下面的例子

export catname=xibei
unset catname

重要的环境变量是 PATH,这是一个用冒号分隔的目录列表,系统会按顺序在这些目录中查找并执行你输入的命令。

shell脚本写入 PATH,则可以直接调用

位置参数变量

位置参数变量可以用如下脚本进行演示,命名为 position.sh

#!/bin/bash
echo "当前脚本名称为:$0"
echo "脚本后的第一个参数为:$1"
echo "脚本后的第二个参数为:$2"
echo "命令行中参数的个数为:$#"
echo "当前命令行所有参数为:$*"

运行脚本,观察返回值

bash script.sh 12 23
 
当前脚本名称为:position.sh
脚本后的第一个参数为:12
脚本后的第二个参数为:23
命令行中参数的个数为:2
当前命令行所有参数为:12 23

综上,位置参数变量是用于在shell脚本中接收和处理命令行参数的预定义变量

它们允许脚本动态地获取用户输入,其中 $0 表示脚本名称,$1$2 等表示第1、2个参数,$# 给出参数个数,$* 则代表所有参数。

通过这些变量,脚本能够根据不同的调用参数执行相应的操作,增强了灵活性和重用性

Analogy

有点像在 python 中向自定义函数传递参数的过程