Linux Shell变量不声明类型、无需初始化,但赋值时等号两侧不可有空格,引用需加$符号,双引号支持变量展开而单引号不展开;数值运算需用$((...))等显式算术上下文;字符串操作支持长度${#str}、截取${str:0:3};普通变量仅当前进程有效,export后成为子进程可见的环境变量。

Linux Shell 中变量是脚本的基础,它不声明类型、不需初始化,但使用时必须注意赋值语法和引用方式。变量名区分大小写,不能以数字开头,推荐用小写字母加下划线。关键点在于:赋值时等号两侧不能有空格;引用变量必须加 $ 符号;字符串中双引号允许变量展开,单引号则原样输出。
变量定义与引用的常见写法
Shell 变量赋值非常简洁,但空格是大忌:
-
name="Alice"✅ 正确(等号紧贴) -
name = "Alice"❌ 错误(会被解释为执行命令name) -
echo $name或echo ${name}都可取值,后者在拼接时更安全,比如${name}123不会误读成变量name123 - 未定义变量默认为空,
echo $undefined输出空白,不会报错
数值运算的三种常用方式
Shell 默认把所有变量当字符串处理,做数学计算需显式启用算术上下文:
-
expr $a + $b—— 传统方式,操作符前后必须有空格,且只支持整数 -
$(( a + b ))—— 推荐方式,支持变量直接写、括号嵌套、位运算等,如$(( 2**3 ))得 8 -
let "c = a * 2 + 1"—— 类 C 语法,适合多步赋值,但注意引号内空格不影响解析
注意:$(()) 中变量名可省略 $,但外部变量仍需带 $ 引用,例如 a=5; echo $((a+3))。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~