shell 数组和函数
数组
数组: 用一个固定的字符串, 代替多个不固定的字符串
数组类型
普通数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| name=abcd
echo ${name:1:2}
narry=(man woman align unknow)
mark=([3]=bilibili [2]=voiblog [1]=TC)
echo ${narry[*]}
echo ${!narry[*]}
|
使用例:
1 2 3 4 5 6 7 8
| pd=('cat /etc/passwd')
narry[0]="myNarry"
declare -a |grep <数组名>
|
关联数组
1 2 3 4 5 6 7 8 9
| declare -A <数组名>
mark=([web]=bilibili [home]=voiblog [cloud]=TC)
echo ${mark[web]}
|
值 |
bilibili |
voiblog |
TC |
索引 |
web |
home |
cloud |
for 定义数组:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
num=0
for i in './test.txt' do line[num++]=$i done
for i in ${!line[*]} do echo $j done
|
变量 IFS, 指定分割符, 用于更改 for 循环的分隔符1
函数
函数意为复用代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
test () { echo "这是函数" } function test { echo "另一种函数定义方法" }
test () { echo "$1" }
test <参数1> <参数2> ...
|
特殊参数
参数 |
说明 |
$? |
显示最后命令的退出状态. 0表示没有错误, 其他任何值表明有错误 |
$# |
传递到脚本或函数的参数个数 |
$* |
以一个单字符串显示所有向脚本传递的参数 |
shift 移动参数(了解)2
使参数产生位移