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

运行结果:
在这里插入图片描述

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

代码如下:

#/bin/bash
test -r test.sh1

运行结果:
在这里插入图片描述

  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

运行结果:
在这里插入图片描述

  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

运行结果:
在这里插入图片描述

  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

运行结果:
在这里插入图片描述

  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

运行结果:
在这里插入图片描述

  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

运行结果:
在这里插入图片描述

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值