Bash also interprets a number of multi-character options

答案:

#! /bin/bashfor i in bash also interprets a number of multi-character optionsdo   n=`echo "$i" | wc -m`   if (($n<6))   then      echo $i   fidone

解析:思路是使用for循环将这句话的每个词的字数统计出来,然后再使用if判断将小于6的词打印

        

         使用for循环将这段话中每个单词依次循环赋值给变量$i,首先,第一次循环将第一个词赋值给$i,然后输出$i,并使用管道符|将输出结果给后面的wc -m命令(这个命令作用是统计字符数),将统计结果赋值给变量$n,``反引号的作用就是将命令的执行结果反馈。

         使用if判断,判断变量$n是否小于6,如果$n小于6,则输出$i,否则不作执行。到这里第一次循环结束。

        

         最后执行第二次循环,第三次循环。。。。依次执行

答案2:

#!/bin/bash##将需要统计的字母放在一个文本中##将文本作为变量输入read -p "please input a filename:" p##统计字符数n=`cat $p |wc -w`for i in `seq 1 $n`do##截取字符  nn=`cat $p |cut -d " " -f$i`##计算截取的字符  mm=`echo $nn |wc -m`##判断   if [ $mm -lt 6   ]  then  echo $nn  fidone

解析:把这段话保存在一个文本中,把文本名作为变量赋值给变量$p,然后使用wc -w统计词数,统计的结果赋值给变量$n

        

          使用for循环,将1-$n依次赋值给$i,这里“seq 1 $n”,就是1,2,3....$n。

          第一次循环,使用cut截取字符串,cut -d “ ”-f$i的意思就是,以空格为分隔符,截取$i段,第一次循环,就是$i=1,也就是第一段

          将截取第一段的结果赋值给变量$nn,使用wc -m 命令统计字符数,将结果赋值给变量$mm.

          使用if判断,判断变量$mm,也就是第一个词的字符数是否小于6,-lt是小于的意思,如果小于6,则输出这个词$nn,否则不执行。

          第一次循环结束。

          依次执行第二次循环,第三次循环。。。。第$i次循环