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
  • 数组的大小没有上限。
posted @ 2021-10-04 12:37  程胥员  阅读(64)  评论(0)    收藏  举报