Shell脚本练习题

  1. Shell编程,判断一文件是不是块或字符设备文件,如果是则将其复制到/dev目录下

代码如下:

#!/bin/bash
touch test.txt
if test -b test.txt
	then
		cp test.txt /dev/test1.txt
	else
		echo "current file is not a block file"
fi

运行结果:
Shell脚本练习题_第1张图片

  1. Shell编程,通过条件测试条件判断当前用户是否拥有某个文件的读权限

代码如下:

#/bin/bash
test -r test.sh1

运行结果:
Shell脚本练习题_第2张图片

  1. Shell编程,利用两层for循环打印九九乘法表

代码如下:

#!/bin/bash
for ((i=1;i<=9;i++))
do
	for((i=1;i<=j))
	do
		let ret="$i\*$j"
		echo -n "$i"\*"$j=$ret  "
	done
	echo -e
done

运行结果:
Shell脚本练习题_第3张图片

  1. Shell编程,接收用户输入的数字,如果是非数字,提示"输入非数字,请重新输入!"并结束;如果是纯数字,则返回数字结果

代码如下:

#! /bin/bash
while true
do
	read -p "please input a value: " value
	case $value in
	[1-9][0-9]*)
	echo "$value"
	;;
	* ) echo "$value is not a num!"
	break
	;;
	esac
done

运行结果:
Shell脚本练习题_第4张图片

  1. 编写Shell程序,判断用户输入的年份是否为闰年

代码如下:

#! /bin/bash
read -p "please input a value: " year
if [ "$((year % 4))" -eq 0 -a $((year % 100))" -ne 0 ]
	then
	echo "$year is leep year"
elif [ "$((year % 400))" -eq 0 ]
	then 
	echo "$year is leep year"
else
	echo "$year is not leep year"
fi

运行结果:
Shell脚本练习题_第5张图片

  1. 编写Shell程序,接收用户输入的数字,判断该数字是否为质数

代码如下:

#!/bin/bash
read -p "Please input a value: " num
if [ $num -le 1 ]
	then
	echo "$num is not a prime or compsite"
fi
if [ $num -eq 2 ]
	then 
	echo "$num is a prime"
fi
for (( i=2; i<$num; i++))
do
	if [ "$((num%2))" -eq 0 ]
		then
		echo "$num is not a prime" && break
	else
		if [ $i -gt "$((num/2))" ]
			then
			echo "$num is prime"
		fi
	fi
done

运行结果:
Shell脚本练习题_第6张图片

  1. 编写Shell程序,循环接收用户输入的成绩(百分制),如果成绩小于60,则输出"不合格";如果成绩大于等于60,输出"及格",按Q(或者q)退出

代码如下:

#!/bin/bash
flg=y
while [ $flg != q -a $flg != Q ]
do
	echo "Welecome to our Score System!"
	read -p "please input your grade: " score
	case $score in
		[0-9] | [1-5][0-9])
		echo "Fail";;
		[6-9][0-9] | 100)
		echo "Pass";;
		* )
		echo "what you input is wrong"
	esac
	read -p "Press Q or q to exit" flg
		if [ $flg -eq q -o $flg -eq Q]
			then
			break
		fi
done

运行结果:
Shell脚本练习题_第7张图片

你可能感兴趣的:(Shell脚本)