定义变量时不能加$且等号两边无空格,变量名只能含字母、数字、下划线并以字母或下划线开头;引用时建议用${}避免歧义,值含空格需用引号包裹,命令结果用$()捕获,单引号不解析变量双引号支持展开,可设只读或删除变量但只读变量不可unset。

Shell 变量用起来其实很简单:先命名赋值,再加 $ 引用。关键不是“会不会”,而是别踩那几个常见坑——比如等号两边加空格、用数字开头、或者忘了引号包空格。
定义时只写名字和值,**不能加 $,等号两边绝对不能有空格**:
name="张三"、PORT=8080、APP_NAME="my-app"
name = "张三"(空格导致变成执行命令)、1name="abc"(数字开头)、user-name="test"(含短横线,非法)变量名只能含字母、数字、下划线,且必须以字母或下划线开头。习惯上常量用大写(如 PI=3.14),普通变量小写或驼峰都行。
用 $变量名 或更推荐的 ${变量名} 来取值。花括号不是可有可无——它能防止歧义:
skill=Java,写 echo "$skillScript" 会被当成变量 skillScript(为空);echo "${skill}Script" 才真输出 JavaScript。只要变量后面紧挨着字母/数字,就强烈建议加花括号,这是省心又安全的习惯。
值里有空格?必须用引号包住,否则 Shell 会切开当成多个参数:
msg="Hello world!" ✓msg=Hello world! ✗(报错或只取 Hello)想存命令执行结果?用 $() 或反引号:
files=$(ls /tmp)date_str=`date +%Y-%m-%d`单引号内所有内容原样输出(不解析变量),双引号内支持变量展开和转义,按需选用。
count=5 → count=12(不用加 $)readonly DB_HOST="127.0.0.1",之后再赋值会报错unset temp_var,再 echo 就为空了注意:只读变量不能 unset,也不能再赋值。
基本上就这些。不复杂,但容易忽略空格和引号——写完变量多看一眼等号两边,基本就稳了。
以上就是Shell 变量怎么用?新手必会基础语法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号