chapter 13.shell数组的应用实践 1.介绍 shell数组是元素的集合,数据的一种格式; 2.定义 array=(value1 value2 value3...) 对于元素较长的:竖着写 静态的! array=($(命令)) array(`命令`) 动态的 3.打印 打印数组个数:echo ${#array[*]} echo ${#array[@]} 打印数组元素:所有元素:echo ${array[*]} echo ${array[@]} 单个元素: echo ${array[0]} 4.删除 unset array ##删除整个数组 unset array[0] ##删除第一个元素 5.示例 array=(1 2 3 array123 bistu) ##普通for循环 for i in ${array[*]}; do #statements echo $i done ##C语言的for循环 for (( i = 0; i < ${#array[*]}; i++ )); do #statements echo ${array[i]} done ##while循环 6.面试题实战及案例 6.1打印下面这句话中字母数不大于6的单词 I am oldboy teacher welcome to oldboy training class C语言的for循环打印 方法1: string=(I am oldboy teacher welcome to oldboy training class) for (( i = 0; i < ${#string[*]}; i++ )) do if [ ${#string[i]} -gt 6 ]; then #statements sleep 1 else echo "${string[i]}" fi done 方法2: string=(I am oldboy teacher welcome to oldboy training class) for (( i = 0; i < ${#string[*]}; i++ )) do if [ `expr length ${string[i]}` -gt 6 ]; then #statements sleep 1 else echo "${string[i]}" fi done 方法3: string=(I am oldboy teacher welcome to oldboy training class) for (( i = 0; i < ${#string[*]}; i++ )) do if [ `echo ${string[i]} | wc -L` -gt 6 ]; then #statements echo "" else echo "${string[i]}" fi done 方法4: string=(I am oldboy teacher welcome to oldboy training class) for (( i = 0; i < ${#string[*]}; i++ )) do if [ `echo ${string[i]} | awk '{print length()}'` -gt 6 ]; then #statements echo "" else echo "${string[i]}" fi done 使用for循环列举值列表法 for word in I am oldboy teacher welcome to oldboy training class do sth //wc -L awk的length()函数 expr的length函数 字符串本身的${#word} 均可进行判断 done awk循环 [root@bogon ~]# echo $char | awk '{for(i=1;i<=NF;i++) if(length($i)<=6) print $i}' 6.2批量检查多个网站地址是否正常 url=( http://blog.oldboy.com http://www.baidu.com http://192.168.142.180 http://127.0.0.1 ) 方法1: urls=( http://blog.oldboy.com http://www.baidu.com http://192.168.142.180 http://127.0.0.1 ) function check_url(){ for url in ${urls[*]}; do #statements #echo $url curl -s -o /dev/null $url RETRVAL=$? if [[ $RETRVAL -eq 0 ]]; then #statements echo "$url is ok" else echo "$url is not ok" fi done } function main(){ while true; do #statements check_url sleep 10 done } main 如何调试脚本: 1)echo 2)sh -x ***.sh