Shell 变量
- 2021-09-21 17:28:04
- admin
- 1718
- 最后编辑:admin 于 2021-09-26 10:19:40
变量类型
Shell是弱类型语言。
实际上,在Shell中,一切变量都是字符串类型。无论你给变量赋值时有没有带引号,值都会以字符串的形式存储。
定义变量
定义变量的格式如下:
variable=value variable='value' variable="value"
Shell 变量的命名规范:
变量名由数字、字母、下划线组成,数字不能打头。
变量名长度不超过20个字符。
变量名区分大小写。
注意:
赋值号 = 的左右两边不能有空格!
变量在声明/赋值时无$,在引用时才有$。
变量值中如果有空格,则必须使用引号引起来,但引号不会作为值的一部分。如 hw="Hello World"。
命令替换
Shell 支持将命令的执行结果赋值给变量,以供在脚本中使用。常见的有以下两种方式:
variable=`command` variable=$(command)
第一种方式把命令用反引号 ``(位于 Esc 键的下方)包围起来,反引号和单引号非常相似,容易混淆,所以不推荐使用这种方式。
第二种方式把命令用$()包围起来,区分更加明显,所以推荐使用这种方式。
单引号和双引号的区别:
单引号里的内容会被原样输出,不能解析变量、命令、转义字符。
双引号可以解析变量、命令、转义字符。
使用变量
使用一个定义过的变量,只要在变量名前面加美元符号$即可,如:
author="张三丰" echo $author echo ${author}
注:变量中的$表示获取变量的值,只有在取值的时候才使用。定义和赋值变量时,无需使用$。
变量名外面的花括号{ }是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
a="Java" echo "I am learning ${a}script" 输出结果:I am learning Javascript
如果不给 a 变量加花括号,写成echo "I am learning $ascript",解释器就会把 $ascript 当成一个变量(其值当然为空)。
注:引用变量时,给变量名加上花括号{ },这是个良好的编程习惯。
Shell 中多个字符串拼接时,直接写在一起即可,Shell 没有特定的字符串连接符。
a=Hello b=World echo $a$b 输出结果:HelloWorld
环境变量
Shell中的环境变量全部使用大写字母表示。shell维护着一组环境变量,用来记录特定的系统信息(set命令可查看)。比如 HOME、USER、UID……
在Shell脚本中,通过在环境变量前加 $ 符来引用这些环境变量。如:$USER $UID
#!/bin/bash echo $HOME 输出结果:/home/gavinhsueh