shell变量赋值以及使用

1、变量赋值

定义变量时,变量名不加美元符号,如

name_str="lili"

特别注意:变量名和等号之间不能有空格

其他注意事项与其他语言相通

 

2、使用变量

使用一个定义过的变量,只有在变量名前面加美元符号$即可

name_str="lili"

echo $name_str

echo ${name_str}

注:变量名外面的花括号是可选的,可加可不加,花括号是为了帮助解释器识别变量边界,所以加上比较保险

 

已被定义的变量也可重新被定义

num=1

echo $num

num=2

echo $num

 

3、位置参数

${n}:输入的第n个参数 ($0表示脚本名字)

$#:输入参数的数量

$@:输入的所有参数

$!:输入的最后一个参数

$?:上一个命令的返回值(用于在脚本中判断之前命令的执行状态,任何非0 的返回都非正常执行)

 

4、数组

数组元素用空格分隔开

数组名=(值1 值2 值3 值n)

array_name=(value0 value1 value2)

读取数组

$(数组名[下标])

 

5、只读变量

使用readonly命令可以将变量定义为只读变量,只读变量的名不能被改变

declare -r N=10

readonly N=10

使用演示:

Count=1
readonly Count
Count=2
-bash: Count:只读变量

6、删除变量

变量删除后不能再使用,unset命令不能删除只读变量

shopt -s -o nounset 设置先申明再使用

uset 释放变量和函数内存

num=222
unset num
echo $num
没有任何输出

7、函数中的变量

若不声明local,则函数中的变量也为全局变量

若声明local(local var=100),则变量的作用域只在函数内

 

8、字符串

单引号

str='abcdefg'

单引号里的任何字符都会以原样输出,单引号中的变量是无效的

双引号 (双引号里可以有变量,也可以出现转译字符)

[root@localhost ~]# your_name='123'
[root@localhost ~]# str="hello\"$your_name\"! \n"
[root@localhost ~]# echo -e $str
hello"123"!

9、获取字符串长度

str="abcd"

echo ${#str}

输出4

 

10、提取字符串

str="abcd"

echo ${str:1}

输出bcd

你可能感兴趣的:(shell相关学习)