周末作业 c高级

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))

思维导图:

周末作业 c高级_第1张图片

 

你可能感兴趣的:(c语言,linux,开发语言)