shell for循环和数组应用
来源:互联网 发布:堆排序学生成绩java 编辑:程序博客网 时间:2024/06/06 20:52
想实现的功能:
读取一个文件,把每一行赋值给一个数组的变量,然后用for循环打印出来
#!/bin/shi=1SUM=`sed -n '$=' tmp.txt` #计算文件的总行数echo "$SUM"while read linedo arr[$i]="$line" i=`expr $i + 1`done < tmp.txtecho "$i"i=1for i in `seq $SUM` ;do echo "${arr[$i]}"done
下面是在china unix上看到大侠的shell数组的学习
声明数组
1)array[key]=value # array[0]=one,array[1]=two
2)declare -a array # array被当作数组名
3)array=( value1 value2 value3 ... )
4)array=( [1]=one [2]=two [3]=three ... )
5)array="one two three" # echo ${array[0|@|*]},把array变量当作数组来处理,但数组元素只有字符串本身
访问数组
1)${array[key]} # ${array[1]}
删除数组
1)unset array[1] # 删除数组中第一个元素
2)unset array # 删除整个数组
计算数组的长度
1)${#array}
2)${#array[0]} #同上。 ${#array[*]} 、${#array[@]}。注意同#{array:0}的区别
提取数组
从尾部开始提取:
array=( [0]=one [1]=two [2]=three [3]=four )
${array[@]:1} # two three four,除掉第一个元素后所有元素,那么${array[@]:0}表示所有元素
${array[@]:0:2} # one two
${array[@]:1:2} # two three
子串删除
[root@localhost dev]# echo ${array[@]:0}
one two three four
[root@localhost dev]# echo ${array[@]#t*e} # 左边开始最短的匹配:"t*e",这将匹配到"thre"
one two e four
[root@localhost dev]# echo ${array[@] %o} # 从字符串的结尾开始最短的匹配
one tw three four
[root@localhost dev]# echo ${array[@] %%o} # 从字符串的结尾开始最长的匹配
one tw three four
子串替换
root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )
所有匹配到的,会被替换
[root@localhost dev]# echo ${array[@] /o/m}
mne twm three fmur
[root@localhost dev]# echo ${array[@] //o/m}
mne twm three fmur
[root@localhost dev]# echo ${array[@] //o/}#替换为空,相当于删除
ne tw three fur
替换字符串前端子串
[root@localhost dev]# echo ${array[@] /#o/k}
kne two three four
替换字符串后端子串
[root@localhost dev]# echo ${array[@] /%o/k}
one twk three four
- shell for循环和数组应用
- linux shell 中数组的定义和for循环遍历
- shell 中的for循环和while循环
- shell 脚本中for循环遍历数组
- Shell 中的数组和循环
- shell 之for循环和if
- shell for循环 和 rsync同步 实例
- 【shell编程学习】for 和 while循环
- 用for循环和增强for循环遍历多维数组
- for-in循环和for循环遍历数组
- shell 中的for循环while循环和case语句
- 2017-12-21 for循环和数组的应用(购物金额的合计)
- shell循环:for循环、while循环、until循环和select循环
- 增强for循环和可变长度数组
- 增强型for循环和可变数组
- for in 循环遍历对象和数组
- Linux Shell 脚本应用——使用for循环
- shell循环1.for循环
- 10进制转16进制(2进制与8进制同理)
- 转飞林沙-Javascript玩转继承-混合继承
- LWUIT引路蜂地图开发示例:地图平移
- Oracle 常用的几个表和视图(细分1)
- Android ApiDemos示例解析(67):Graphics->Layers
- shell for循环和数组应用
- 构建基于SRU(Search and Retrieve via URL)协议的服务接口
- 设计一个队列能够在O(1)取得队列的最大值
- Android ApiDemos示例解析(68):Graphics->MeasureText
- 音频格式相关术语
- iis出现 Server Application Error 错误解决方法
- ActionContext和ServletActionContext小结
- C++中的字符串类型(转载)
- ARM 指令寻址方式