编写一个Shell程序showleve12.sh,该程序通过调用Shell函数实现递归地以层次号和缩进格式显示命令行参数指定的目录和该目录下的全部文件和子目录。如目录参数缺省,显示当前目录的层次结构。请与用Shell过程的实现方法做一对比。

admin2016-05-12  29

问题 编写一个Shell程序showleve12.sh,该程序通过调用Shell函数实现递归地以层次号和缩进格式显示命令行参数指定的目录和该目录下的全部文件和子目录。如目录参数缺省,显示当前目录的层次结构。请与用Shell过程的实现方法做一对比。

选项

答案程序清单24-10中,showlevel2.sh在初始化后通过调用递归的Shell函数showl()实现本题功能。 程序清单24-10:showlevel2.sh showl(){ #递归的Shell函数showl的定义 if test-d $iterm;then lv=$level while test $lv-gt 0;do #打印缩进空格 echo-n" " iv=’expr $ lv-1’ done ech $level:iterm #输出层号和目录名 (cd $ iterm #在子进程中执行,退出后当前目录恢复为原目录 level=’expr $level+1’ for j in*;do iterm=s j #Shell函数中变量在递归函数调用中也是可见的 showl #递归调用Shell函数 done) else iv=$ level while test $lv-gt 0;do #输出层号和文件名 echo -n" " iv=’expr $ lv-1’ done echo $ level:$ iterm fi } #Shell函数showl的定义到此结束 if test $ #-eq 0;then showlevel.sh. else if!(test -d $ 1);then echo Usage:$0 dir exit1 else level:0 #Shell过程中变量对Shell函数是可见的,不必export iterm=$1 showl fi fi。

解析
转载请注明原文地址:https://jikaoti.com/ti/A9EaFFFM
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)