bash_变量_数组
bash-变量、数组、管道
bash的变量
清空变量
[root@node1 ~]# unset a
bash中变量的类型
- 本地变量
- 局部变量
- 位置变量
- 特殊变量
- 环境变量
本地变量
- 当前shell所有
- 生命周期跟当前shell一样
[root@node1 ~]# a=99
[root@node1 ~]# echo $a
99
局部变量
- 只能用于函数
- local var=100
[root@node1 ~]# myfunc(){
>a=1
>local b=2
>echo "a = $a"
>echo "b = $b"
>}
[root@node1 ~]# echo $a
# 访问不到
[root@node1 ~]# echo $b
# 访问不到
[root@node1 ~]# myfunc # 调用函数
[root@node1 ~]# echo $a
1
[root@node1 ~]# echo $b
# 访问不到
位置变量:
[root@node1 ~]# source mysh1.sh a b 1 2 3 4 5 6 7 8 9
a
b
c
[root@node1 ~]# cat mysh1.sh
#!/bin/bash
echo $1
echo $2
echo ${10}
[root@node1 ~]#
特殊变量:
[root@node1 ~]# cat args.sh
#!/bin/bash
echo $1
echo ${10}
echo ${11}
echo "number of args:$#"
echo "args:$@"
echo "current pid:$$"
[root@node1 ~]# ./args.sh 1 2 3 4 5 6 7 8 9 a b c
1
a
b
number of args:12
args:1 2 3 4 5 6 7 8 9 a b c
current pid:1522
[root@node1 ~]#
¥? 用于获取上一个命令的退出状态
[root@node1 day4]# mydir=/root
[root@node1 day4]# [ -d $mydir ] && echo "$mydir is dir"
/root is dir
[root@node1 day4]# [ -d $mydir ]
[root@node1 day4]# echo $?
0
[root@node1 day4]#
数组
[root@node1 day4]# ll=(a b c) # 定义数组1
[root@node1 day4]#lilei=(a b "hello world") # 定义数组2
[root@node1 day4]# echo $ll
a
[root@node1 day4]# echo ${ll[1]}
b
[root@node1 day4]# echo ${ll[*]}
a b c
[root@node1 day4]# echo ${ll[@]}
a b c
[root@node1 day4]# echo ${lilei[2]}
hello world
--错误写法: echo $ll[1]
数组元素的赋值:
[root@node1 day4]# ll[1]=x
[root@node1 day4]# echo ${ll[1]}
x
- 数组的大小没有上限。

浙公网安备 33010602011771号