注:前言、目录见 https://blog.csdn.net/qq_44220418/article/details/108428971
友情提醒:仅供参考理解,请勿直接复制粘贴
友情提醒:仅供参考理解,请勿直接复制粘贴
友情提醒:仅供参考理解,请勿直接复制粘贴
第一题
编写一个Shell程序,完成键盘读入一组整数,以
-999
结束
输出其中负数的个数,并计算负数的累加和
如:
\qquad 输入:12 -5 18 58 -3 80 -999
(每个数据以回车结束)
\qquad 输出:负数个数N=2,负数累加和为-8
a=0
cnt=0
sum=0
read a
while(( ${a} != -999 ))
do
if [ ${a} -lt 0 ]
then
cnt=`expr ${cnt} + 1`
sum=`expr ${sum} + ${a}`
fi
read a
done
echo "负数个数N=${cnt},负数累加和为${sum}"
第二题
编写shell程序 ,将当前目录下的所有普通文件名改成 file1 file2 …… fileN 的形式
idx=0
for file in `ls`
do
if [ ${file} != "2.sh" -a -f ${file} ]
then
mv ${file} "file${idx}"
idx=`expr ${idx} + 1`
fi
done
第三题
编写shell程序,文件名
test_ count
,统计当前目录中指定若干学生(姓名由命令参数输入)上传文件的数量
自定义函数examcount()
返回某学生的上传的实验文件数量(文件名中含学生姓名),并将记录学生姓名 – 实验文件数
存入文件examlist
中
examcount() {
echo "${1} - "`find -maxdepth 1 -name "*${1}*" | wc -l` >> examlist
}
# 执行脚本时,在命令行传入参数,对每个姓名参数调用examcount函数进行统计
for arg in $*
do
examcount ${arg}
done
# 使用示例:
# ./test_count.sh zhangsan lisi wangwu wumingshi
示例截图