bash Array 和拓展的pattern match
通过Bash_It的学习,第一次意识到Shell数组的不一样的写法。 并且也看到Pattern Match的一些用途。
1 Array
1.1 Bash数组定义
通过(1,2,3)区分于fortran语言的(/1,2,3/).
bash1=(34,5,6,4)
bash2=(“34”,“5”,“5”,“4”)
1.2 Bash关联数组定义
通过 -A开关选项定义一个关联数组。
declare -A bash1
bash1[“34”]=“53”
bash1[“56”]=“45”
declare -A array
for subscript in a b c d e
do
array[$subscript]="$subscript $RANDOM"
done
也可以在命令行使用
a=($(ls)) #而不是a=$(ls)
#这样就可以使用
${a[1]}
1.3 Bash数组添加数据
bash1+=“54”
1.4 Bash数组显示数据和便利
##单个显示
printf "%s\n" "${array["c"]}"
##遍历
printf "%s\n" "${array[@]}"
printf "%s\n" "${array[*]}"
1.5 拓展的操作
#表示长度的作用
- ${#array2} 现实第二个数组元素的长度
- ${#array[@]} 显示全部数组元素的长度
- ${#array[*]} 显示全部数组元素的长度
- ${#array[@]:2:3} 获取第2个到3个的长度
- ${!array[@]} !的作用是现实所有的key在数组当中。
进一步参考
pro_Bash_programming第五章 array部分
2. PATTERN MATCH
?(pattern-list) Matches zero or one occurrence of the given patterns
*(pattern-list) Matches zero or more occurrences of the given patterns
+(pattern-list) Matches one or more occurrences of the given patterns
@(pattern-list) Matches one of the given patterns
!(pattern-list) Matches anything except one of the given patterns
比如:
$ ls +(ab|def)*+(.jpg|.gif)
进一步参考 ls使用PATTERN-MATCH
Linux基础资料参考
3 事情流程
- 认定你的事情
- 做
- 检验
拓展为:
- 认清楚这件事情;
- 分析与这件事情有关的一切的一切;
- 制定做好这件事情的计划;
- 实施计划;
- 验证这件事情的结果;