Linux Shell变量默认局部、无类型,赋值等号两侧不可有空格,引用需加$;export导出为环境变量供子进程继承,函数内用local声明局部变量,双引号内可展开变量而单引号不可。

Linux Shell 中的变量用法看似简单,但作用域和赋值规则常被误解,尤其在脚本调试时容易出错。关键在于:变量默认是局部的、无类型、赋值不加空格、引用需加 $ 符号,且子 shell 无法修改父 shell 的变量。
变量定义与赋值的基本规则
Shell 变量赋值时,等号两侧**不能有空格**,否则会被解释为命令执行:
-
错误写法:
name = "Alice"→ 报错:name: command not found -
正确写法:
name="Alice"或name=Alice(无空格、无引号也可,但含空格或特殊字符必须加引号) - 变量名只能含字母、数字和下划线,且不能以数字开头,如
user1合法,1user非法 - 赋值后不声明类型,值就是字符串;数值运算需用
$((...))或let显式处理
变量作用域:本地 vs 全局(环境变量)
默认定义的变量只在当前 shell 进程中有效;要让子进程(如执行的脚本、管道中的命令)也能访问,必须用 export 导出为环境变量:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~