shell脚本编程学习第六天
F、利用 bash for 循环打印下面这句话中字母数不大于 6 的单词(某企业面试真题)。
I am oldboy teacher welcome to oldboy training class(或者输入的一句话)
#!/bin/bash
arr=(I am oldboy teacher welcome to oldboy training class)
for world in ${arr[*]}
do
if [ ${#world} -le 6 ] //再次强调 [] 两侧有空格,= 两侧没有
then
echo ${world}
fi
done
#!/bin/bash
for i in I am oldboy teacher welcome to oldboy training class
do
if [ `echo $i | wc -L` -le 6 ];then
echo "$i"
fi
done
遇到的问题:
数组:格式:array_name=(value0 value1 value2 value3)
读取数组的某个元素:value= ${array_name[2]}
获取数组中所有元素: ${array_name[ * ] } 或者 $ {array_name[@]}
获取数组的长度: length = $ { #array_name [ * ] }
或者 length = $ {#array_name[@]}
字符串:求长度: ${#string} 或者 expr length $string
截取字符串: ${string: 起始位置: 结束位置},没有终止位置就是到最后
获取字符串位置:expr index $string ‘子字符串’, 返回的是第一次出现的位置。
**wc:**用于统计指定文件的行数,单词数,字节数并打印出来。
命令参数:
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计单词数。一个被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
参考文章:https://blog.csdn.net/dongwuming/article/details/50605911