非常好的十道Linux shell脚本面试题 1、编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下 #/bin/sh #Programm: #Usingformovecurrentlydirectoryto/tmp forFileNamein`ls-l|awk'$5>10240{print$9}'` do mv$FileName/tmp done ls-al/tmp echo"Done!" 2、编写shell脚本获取本机的网络地址。 比如:本机的ip地址是:.,那么它的网络地址是 . 方法一: #!/bin/bash #work file="/etc/work-scripts/ifcfg-eth0" if[-f$file];then IP=`grep"IPADDR"$file|awk-F"="'{print$2}'` MASK=`MASK"$file|awk-F"="'{print$2}'` echo"$IP/$MASK" exit1 fi 方法二: #!/bin/bash #work # IP=`ifconfigeth0|grep'inet'|sed's/^.*addr://g'|sed's/Bcast.*$//g'` NETMASK=`ifconfigeth0|grep'inet'|sed's/^.*Mask://g'` echo"$IP/$NETMASK" exit 3、用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到/dev目录下。 参考程序: #!/bin/sh FILENAME= echo“Inputfilename:” readFILENAME if[-c"$FILENAME"] then cp$FILENAME/dev fi ,并说明程序的功能和调用方法: #!/bin/sh # #/etc/ # #Start/stop/restarttheApachewebserver. # #TomakeApachestartautomaticallyatboot,makethis #fileexecutable:chmod755/etc/ # case"$1"in 'start') /usr/sbin/apachectlstart;; 'stop') /usr/sbin/apachectlstop;; 'restart') /usr/sbin/apachectlrestart;; *) echo"usage$0start|stop|restart";; esac 参考答案: (1)程序注释 #!/bin/sh定义实用的shell # #/etc/,凡是以星号开始的行均为注释行。 # #Start/stop/restarttheApachewebserver. # #TomakeApachestartautomaticallyatboot,makethis #fileexecutable:chmod755/etc/ # case"$1"in#case结构开始,判断“位置参数”决定执行的操作。本程序携带一个“位置参数”,即$1 'start')#若位置参数为start /usr/sbin/apachectlstart;;#启动httpd进程 'stop')#若位置参数为stop /usr/sbin/apachectlstop;;#关闭httpd进程 'restart')#若位置参数为stop /usr/sbin/apachectlrestart;;#重新启动httpd进程 *)#若位置参数不是start、stop或restart时 echo"usage$0start|stop|restart";;#显示命令提示信息:程序的调用方法 esac#case结构结束 (2)程序的功能是启动,停止或重新启动httpd进程 (3)程序的调用方式有三种:启动,停止和重新启动。 ,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。 参考答案: #!/bin/sh i=1 groupaddclass1 while[$i-le30] do if[$i-le9];then USERNAME=stu0${i} else USERNAME=stu${i} fi useradd$USERNAME mkdir/home/$USERNAME chown-R$USERNAME/home/$USER
shell常见问题 来自淘豆网m.daumloan.com转载请标明出处.