shell脚本基础练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
shell脚本基础练习题
1、判断/etc/inittab⽂件是否⼤于100⾏,如果⼤于,则显⽰”/etc/inittab is a big file.”否者显⽰”/etc/inittab is a small file.”
#!/bin/bash
#判断⽂件⾏数是否⼤于100⾏
if [ `wc -l /etc/inittab | awk '{print $1}'` -gt 100 ];then
echo "/etc/inittab is a big file."
else
echo "/etc/inittab is a samll file."
fi
2、给定⼀个⽤户,来判断这个⽤户是什么⽤户,如果是管理员⽤户,则显⽰“该⽤户为管理员”,否则显⽰“该⽤户为普通⽤户”
#!/bin/bash
#判断⽤户类型`
a=`id -u $1`
if [ $a -eq 0 ];then
echo "这是管理员⽤户"
else
echo "普通⽤户"
fi
3、判断某个⽂件是否存在
#!/bin/bash
#判断⽂件是否存在
if [ -e $1 ];then
echo "存在"
exit 0
else
echo "不存在"
fi
4、判断当前系统上是否有⽤户的默认shell程序是否为bash程序,如果有,就显⽰有多个这类⽤户,否则就显⽰没有这类⽤户;【并且显⽰出那些⽤户是bash】
⽅法⼀:
#!/bin/bash
#判断⽤户默认shell程序类型
a=`grep "/bin/bash" /etc/passwd | wc -l`
if [ $a -gt 0 ] ;then
echo "存在bash⽤户有 $a 个"
else
echo "不存在"
fi
⽅法⼆:
#!/bin/bash
#判断⽤户的默认shell程序类型
declare -i sum=`grep "/bin/bash" /etc/passwd | wc -l`
if grep "/bin/bash" /etc/passwd &> /dev/null;then
echo "存在 $sum 个⽤户,shell程序为/bin/bash"
grep "/bin/bash" /etc/passwd | cut -d: -f1
exit 0
else
echo "没有这类⽤户"
exit 1
fi
5,输⼊⼀个设备⽂件,输出这个设备⽂件的基本信息:
#!/bin/bash
#查看设备⽂件信息
read -t 10 -p "输⼊⼀个设备⽂件名:" devname
[ -z $devname ] && devname=`fdisk -l` && exit 1
if [ -b /dev/$devname ];then
fdisk -l /dev/$devname
exit 0
else
echo "$devname 不是设备⽂件"
echo "Usage:请输⼊⼀个设备⽂件,如 sda"
exit 2
fi
6,shell编写99乘法表
#!/bin/bash
#99乘法表
for i in `seq 9`;do
for j in `seq 9`;do
[ $j -le $i ] && echo -n -e "$i*$j=`echo $(($i*$j))`\t" done
echo " "
done
7,统计netstat -tan类型
declare -i L=0
declare -i E=0
declare -i o=0
for i in $(netstat -tan | grep "^tcp" | awk '{print $6}');do
if [ $i = LISTEN ];then
let L++
elif [ $i = ESTALISHED ];then
let E++
else
let o++
fi
done
echo "坚挺的链接有: $L"
echo "其他链接有: $o"
echo "家⾥链接有: $E"
8,计算1-100内偶数的和
#!/bin/bash
#1-100内偶数的和
declare -i sum=0
for i in $(seq 0 2 100);do
let sum+=$i
done
echo "和 $sum"。