今天我们shell小组要进行讨论了,组长出了两到题。
第一题是:“写一个shell脚本,该脚本显示出当前工作目录中的所有目录文件,而不显示其他类型的文件。”
我写 的脚本是:
1 for lzhp in * #将*换成($ls) 其效果是一样的
2 do
3 if [ -f "$lzhp" ]
4 then
5 echo "$lzhp(file)"
6 fi
7 done
下面的脚本于上面的脚本实现同等功能:
1 set $(find . -maxdepth 1 -type f -print)
2 for lzhp in $*
3 do
4 echo "${lzhp#./}"
5 done
第二题是:”写一个函数,用一个目录名作为函数的参数,将该目录下的所有文件中名字最长的那个文件名写到标准输出上。如果函数的参数不是一个目录,那么就向标准输出一个错误信息,同时返回一个非零退出码退出程序”
我的脚本是:
liuzhouping()
{
i=0
if [[ -d $1 && $# = 1 ]];then
k=$1
set $(ls $1)
for lzhp in $*
do
if [ -f $k/$lzhp ];then
if [ $i -lt ${#lzhp} ];then
j=$lzhp
i=${#lzhp}
fi
fi
done
echo $j
echo "该目录下文件最大长度为:${#j}"
else
echo "你输入的不是目录,或者参数不是只有一个!" 1>&2
exit 1
fi
}
liuzhouping $@
阅读(685) | 评论(1) | 转发(0) |