shell 变量
定义一个变量
my_first_var=1
如上代码所示,定义了一个变量名为my_first_var
的变量,并且将其变量的值赋为1。
注意
- 命名只能用英文字母,数字和下划线,首个字符不能用数字开头。
- 中间不能有空格,可以使用下划线 ‘_’
- 不能使用bash中的关键字
无效的命名方式:
?var=1 #禁止以标点符号和数字打头
a*b=12 #禁止标点符号
使用一个变量
使用变量需要向定义好的变量前加$
符号进行使用。
#!/bin/sh
# #表示注释
# Filename: xxx.sh
#auto echo hello world!
#by authors dhy
var=2s
echo $var #使用$var来打印变量
echo ${var} #花括号为可选项,标志变量边界,可以省略
echo "hello world!" #也可以直接打印字符串
变量的类型
字符串类型
单引号字符串 ‘string’
单引号字符串就单纯表示单引号内部的全部为字符串,没有变量等其他元素。
例如:
var='my first bash'
echo '$var' # 只打印$var,不会进行变量解析
运行结果如下:
单引号下的字符串中,不会进行变量等其他的解析
双引号字符串 “string”
var='my first bash'
echo "this is $var" # 双引号下,会进行变量解析和其他操作
运行结果如下:
双引号下会进行变量解析,和其他计算操作
获取字符串长度
string="my name is dhy"
echo "${#string}" #花括号意思就是,先将内部计算了
提取子字符串
string="my name is dhy"
echo "${string:1:4}" #输出第一个到第四个
数组类型
数组中可以存放不同种类元素
定义一个数组:
arr=(1 2 3 val1 val2 val3)
单独给某个变量赋值
arr[0]=value0
读取数组
arr=(1 2 3 val1 val2 val3)
echo "The first val is ${arr[0]}" #需要加上{}
数组大小
arr=(1 2 3 val1 val2 val3)
echo "the length in arr is ${#arr[@]}"