shell编程之变量

shell变量

name="simons"
echo $name

变量命名规范:
1.不能使用标点符号;
2.变量名和等号之间不能有空格;
3.变量名命名只能为英文字母、数字、下划线,且第一个字符不能为数字;
4.变量名字符之间不能有空格,也不能使用bash里面的关键字(可通过help命令查看)

使用时在定义好的变量前面加个"$"符号即可
echo $name
echo ${name}   #推荐加上花括号

"{}"是可选项,是为了帮助解释器清楚的识别变量的边界,例如

#!/bin/bash
name="simons"
echo "${name}hello"

如果不加"{}"的话,就变成了取变量 $namehello的值

readonly设置只读变量

#!/bin/bash
name="simons"
readonly name
name="jack"

运行脚本出现:
/test.sh: line 15: name: readonly variable

unset删除变量

unset name
变量被删除后不能再次使用、unset命令也不能删除只读变量

#!/bin/bash
name="simons"
unset name
echo $name
执行这个脚本不会有任何输出

shell字符串

单引号:单引号字符串里面使用变量无效、单引号里面的任何字符都会原样输出、单引号字符串中不能再出现单引号(包括转义后的也不行);
双引号:双引号里面可以有变量、可以出现转义字符;
#!/bin/bash
name="simons"
echo ${name}
name="simons  \"test\" "

#!/bin/bash
name="simons"
echo ${#name}  ##获取字符串长度,输出6
echo ${name:2:4}  ##截取字符串,从2开始(下标从0开始计),截取4个字符,输出 mons
echo `expr index "$name" s`   ##查找字符串,查找s字符的首次出现位置,输出 1

shell数组

arrays_name=(value0 value1 value2)
或者
arrays_name=(
value0 
value1
value2
)
或者
arrays_name[0]=value0
arrays_name[1]=value1
arrays_name[2]=value2

bash只支持以为数组,数组大小无限制,下标从0开始,下标可以不连续
${arrays_name[下标]}    #获取特定元素
${arrays_name[@]}       #获取所有元素
${arrays_name[*]}       #获取所有元素 
${#arrays_name[@]} 或者${arrays_name[*]}     #获取数组的长度

你可能感兴趣的:(Linux)