标签:his input declare from use 两条命令 pac 操作 removing
vi string_array.sh
#!/bin/bash
city=(Nanjing Atlanta Massachusetts Marseilles) #建立一个简单的数组
echo "Extracting Substring" #演示抽取子串功能
echo ${city[*]:0} #抽取整个数组
echo ${city[*]:1} #抽取从第1个元素到结束的数组
echo ${city[*]:3} #抽取从第3个元素到结束的数组
echo ${city[*]:0:2} #抽取从第0个元素开始的2个元素
echo
echo "Removing Substring" #演示删除子串功能
echo ${city[*]#M*a} #删除从M到a的最短子串
echo ${city[*]##M*a} #删除从M到工的最长子串
echo
echo "Replacing Substring" #演示替换子串功能
echo "${city[*]/M*s/Year}" #替换第1次与M*s匹配的子串
echo "${city[*]//M*s/Year}" #替换所有与M*s匹配的子串
./string_array.sh
Extracting Substring
Nanjing Atlanta Massachusetts Marseilles
Atlanta Massachusetts Marseilles
Marseilles
Nanjing Atlanta
Removing Substring
Nanjing Atlanta ssachusetts rseilles
Nanjing Atlanta chusetts rseilles
Replacing Substring
Nanjing Atlanta Year Year
Nanjing Atlanta Year Year
注:替换时所得到的结果一样,因为"/"符号第1次匹配子串和"//"符号匹配的全部
子串都是对一个数组元素而言,Massachusetts 和 Marseilles都只有1个与M*s匹配的子串,
所以两条命令得到的结果相同。
arrivedcity.sh脚本演示数组与read命令、unset命令的用法
vi arrivedcity.sh
#!/bin/bash
declare -a arrivedcity #将arrivedcity声明为数组
echo "What city have you been arrived?"
echo "The input Should be seperated from echo other by a SPACE"
read -a arrivedcity
echo
#for循环输出数组的全部内容
for i in "${arrivedcity[@]}"
do
echo $i
done
echo "The length of this array is ${#arrivedcity[@]}."
echo "Executing UNSET operation......"
unset arrivedcity[1] #清空arrivedcity[1]元素
echo "The length of this array is ${#arrivedcity[@]}."
echo "Executing UNSET operation......"
unset arrivedcity
echo "The length of this array is ${#arrivedcity[@]}."
./arrivedcity.sh
What city have you been arrived?
The input Should be seperated from echo other by a SPACE
Shanghai Dalian Melbourne Suzhou Beijing
Shanghai
Dalian
Melbourne
Suzhou
Beijing
The length of this array is 5.
Executing UNSET operation......
The length of this array is 4.
Executing UNSET operation......
The length of this array is 0.
shell还有一种重要的操作---数组连接
标签:his input declare from use 两条命令 pac 操作 removing
原文地址:https://www.cnblogs.com/zhudaheng123/p/14648019.html