linux变量是内存标签,用于暂存字符串等文本;赋值时等号无空格、值含空格用双引号、变量名合法且区分大小写;引用用$或${};export可导出为环境变量供子进程使用;临时变量仅当前shell有效,永久变量需写入shell配置文件并source生效。

Linux 中使用变量存储和调用数据,核心在于理解“赋值—引用—作用域”三步逻辑。变量不是文件或命令,而是一个内存中的标签,用来暂存字符串、路径、数字等任意文本内容(Shell 默认所有变量都是字符串类型)。
定义变量:等号两边不能有空格
直接用 变量名=值 赋值,注意:
• 等号左右绝对不能有空格,name = john 是错的,会当成执行命令 name;
• 值含空格或特殊字符时,建议用双引号包裹,比如:msg="Hello World";
• 变量名只能由字母、数字、下划线组成,且不能以数字开头;
• 区分大小写,PATH 和 path 是两个不同变量。
调用变量:加 $ 符号取值
用 $变量名 或 ${变量名} 引用内容:
• echo $msg 输出 Hello World;
• 推荐用花括号写法 ${msg},尤其在拼接字符串时更安全,比如 echo "Today is ${date}_log";
• 如果变量未定义,$undefined 展开为空,不会报错,但可能引发意外行为。
让变量对子进程可见:用 export 提升为环境变量
普通变量只在当前 Shell 有效;要让后续启动的命令(如脚本、程序)也能读到,必须导出:
• export msg —— 把已存在的变量提升为环境变量;
• export msg="Hello" —— 一步完成赋值+导出;
• 导出后,子进程(比如你运行的 Python 脚本)就能通过 os.environ.get("msg") 获取它;
• 检查是否导出成功:运行 env | grep msg 或 printenv msg。
临时 vs 永久:生命周期取决于写在哪
变量生效范围由定义位置决定:
• 在终端里直接输入 msg="test" → 仅当前窗口有效,关掉就消失;
• 写进 ~/.bashrc(Bash)或 ~/.zshrc(Zsh)末尾 → 每次新开终端自动加载;
• 修改后需执行 source ~/.bashrc 才能立即生效,不用重启终端;
• 系统级配置(如 /etc/environment)影响所有用户,但一般不建议随意改动。











