1.判断家目录下,普通文件的个数和目录文件的个数:
#!/bin/bash
arr1=(`ls -la ~/|cut -d r -f 1|grep -wi d`)
arr2=(`ls -la ~/|cut -d r -f 1|grep -wi -`)
echo "普通文件个数为:${#arr2[*]}"
echo "目录文件个数为:${#arr1[*]}"
2.输入一个文件名,判断是否为shell脚本文件,如果是脚本文件,判断是否有可执行权限,如果有可执行权限,运行文件,如果没有可执行权限,给文件添加可执行权限:
#!/bin/bash
read -p "请输入一个文件名:" filename
pos=`expr index $filename '.'`
tail=`expr substr $filename $((pos+1)) 2`
if [ $tail = "sh" ]
then
echo "$filename是脚本文件"
if [[ -x $filename ]]
then
echo "且有可执行权限"
./$filename
else
echo "没有可执行权限"
chmod +x $filename
echo "已添加可执行权限"
fi
else
echo "$filename不是脚本文件"
fi
3.终端输入两文件名,判断哪一个文件更新:
#!/bin/bash
read -p "请输入第一个文件名:" file1
read -p "请输入第二个文件名:" file2
if [ $file1 -nt $file2 ]
then
echo "$file1更新"
else
echo "$file2更新"
fi
4.终端输入用户,判断用户是否存在,如果不存在,添加用户:
#!/bin/bash
read -p "请输入一个用户名" user
if [[ `id -u $user` -ne 0 ]]
then
echo "$user存在"
else
echo "$user不存在"
sudo adduser $user
echo "$user创建成功"
fi
5.输入学生成绩,判断等级,A[100,90),B[90,80),C[80,70),D[70,60):
#!/bin/bash
read -p "请输入学生成绩(100以内):" score
if [[ $score -gt 90 && $score -le 100 ]]
then
echo "A"
elif [ $score -gt 80 -a $score -le 90 ]
then
echo "B"
elif [[ $score -gt 70 && $score -le 80 ]]
then
echo "C"
elif [ $score -gt 60 -a $score -le 70 ]
then
echo "D"
else
echo "不及格"
fi
6.写一个shell脚本,获取当前用户名,用户id和工作路径:
#!/bin/bash
username=`whoami`
echo "当前用户名为:$username"
userid=`id -u $username`
echo "当前用户的id为:$userid"
workplace=`pwd`
echo "当前用户的工作路径为:$workplace"
7.统计/etc目录下以P或p开头的文件个数:
#!/bin/bash
arr1=(`sudo find /etc -name p*|grep -i p `)
arr2=(`sudo find /etc -name P*|grep -i p `)
num1=${#arr1[*]}
num2=${#arr2[*]}
echo $(($num1+$num2))
思维导图: