Shell变量

变量命名规范

变量名=变量值,无空格

  • 使用英文字母、数字和下划线,首个字母不能是数字
  • 不能使用 bash 关键字

其它

链接

定义一个变量

var="hello"

"'

echo "he'l'lo"  # 输出结果为he'l'lo
echo 'he'l'lo'  # 输出结果为hello,为了达到相同效果需要使用转义字符: echo 'he\'l\'lo'

修改一个变量

var="new hello"

使用一个变量

echo $var
# or
echo ${var}

${}: 帮助解释器更好识别变量
建议使用${}

只读变量

使用readonly关键字

var="hello"
readonly var

删除变量

使用unset关键字

var="hello"
unset var

被删除的变量不能被使用,echo 输出为空
不能删除只读变量

变量的作用域

  1. 局部变量:仅在当前 shell 实例中有效的变量,其他 shell 程序不能访问
  2. 全局变量:当前 shell 进程有效,使用 export 关键字
export hello="hello"
echo $hello  # 当前进程的shell会话,输出为hello
bash  # 当前进程,启动新的shell会话
echo $hello  # 输出为hello
# 全局变量的修改
hello="world"  # 修改全局变量,只对当前会话和下一会话有效
bash
echo $hello  # 输出为world
exit  # 退出当前会话
echo $hello  # 输出为hello
  1. 环境变量:系统环境变量,例如 Linux 中的$HOME将输出用户家目录
  2. shell 变量:有环境变量,也有局部变量,shell 变量保证了 shell 的运行,例如$0

comment: