数组代码编号
本文关键字:编号 代码 数组 | 更新日期: 2023-09-27 18:32:55
这是我的期中考试例题。但是,我还不知道如何正确地用bash编写代码。请您帮忙向我解释一下吗?这对我来说非常重要。
谢谢
如果我理解了你的问题...这应该有效:
$ ls /usr/bin | cut -b1 | uniq -c
请注意,这将计算/usr/bin 下的所有内容(文件、链接,...)
这里有一些可能符合你要求的东西。它基本上将所有命令存储在一个名为"命令"的数组中。这个数组已经通过 ls
进行了排序。然后我们遍历该数组中的所有元素,并使用${cmd:0:1}
提取每个单词的第一个字母,并将其存储在一个变量中,该变量跟踪我们正在处理的当前"字母"。随着循环的继续,只要字母相同,我们就会不断增加计数器,否则,我们打印出字母和计数器,存储新的当前字母并将计数器重置为 1(因为它已经是新字母了)。最后,我们仍然需要打印最后一条记录,从而在循环外打印。
#!/bin/bash
commands=(`ls /usr/bin`)
count=0
letter=""
for cmd in ${commands[@]}; do
curletter=${cmd:0:1}
if [ "${letter}" != "${curletter}" ]; then
echo "${letter}: ${count}"
letter=${curletter}
count=1
else
count=`expr $count + 1`
fi
done
echo "${curletter}: ${count}"