Linux变量怎么用_Shell变量详解

2次阅读

Linux变量怎么用_Shell变量详解

linux Shell 变量本质是字符串容器,赋值即存文本,使用时加 $ 引用。核心就三点:怎么设、怎么用、怎么管。

变量怎么正确设置

赋值格式固定:变量名=值,等号两边绝对不能有空格,否则 shell 会当成命令执行而报错。

  • 变量名只能含字母、数字、下划线,且必须以字母或下划线开头(如 user_name 合法,1user 不合法)
  • 变量值含空格或特殊字符,必须用双引号 " " 或单引号 ' ' 包裹(如 msg="hello world"
  • 不加引号也可以,但仅限值中不含空格、通配符(*?)、$、反引号等,否则可能被错误解析

变量怎么安全引用

取值统一用 $变量名 或更清晰的 ${变量名}。花括号不是可选,而是必要——尤其当变量名后紧接其他字符时。

  • 例如:name=Tom,写 echo "$name_is_here" 会找不到变量;应写 echo "${name}_is_here"
  • 双引号内支持变量展开("Hello $name"Hello Tom),单引号则原样输出('Hello $name'Hello $name
  • 命令替换可用 $(命令) 或反引号,结果可直接赋给变量(如 count=$(ls | wc -l)

变量怎么控制作用范围

普通变量默认只在当前 shell 进程有效;要让子进程也能用,得导出为环境变量。

  • 导出方式:export var=value 或先赋值再 export VAR
  • 查看所有变量用 set,只看环境变量用 envprintenv
  • 设为只读:readonly VARdeclare -r VAR,之后无法重新赋值
  • 删除变量:unset VAR(注意不带 $

常见误操作提醒

很多问题其实就卡在几个细节上:

  • VAR = value(中间有空格)→ 报错:command not found
  • echo $PATH/bin → 可能误读成变量 PATH/bin;应写 echo "${PATH}/bin"
  • 把数字当整数运算?Shell 默认全字符串,需显式声明:declare -i num=5,否则 num=2+3 不会算出 5,而是存下字面量 2+3
text=ZqhQzanResources