作业2024/1/16

练习1:输入一个文件名,

判断是否在当前目录下存在, -e

如果是一个目录,则直接输出是目录 -d

如果存在则判断是否是一个普通文件,如果是普通文件则判断是否具备 -f

可读可写可执行权限, -w -r -x如果具备权限,写入hello, echo hello >> $file

不具备权限,则添加读写执行权限,chmod 777 $file 写入hello

如果是一个链接文件则输出文件的详细信息 ls -lh $file

 

#!/bin/bash
read -p "please enter file:" file
if [ -e ./$file ]  #判断文件是否存在
then 
	echo file exist
	if [ -d $file ]   
	then
		echo -d file
	elif [ -L $file ]  
	then
		c=`ls -lh $file`
		echo $c
	elif [ -f $file ]   #判断是不是普通文件
		then
			echo -f file
		if [ -r $file ]  #判断是否具有读权限
		then
			echo -r file
		fi
		if [ -w $file ]  #判断是否具有写权限
		then
			echo -w file
		fi
		if [ -x $file ]  #判断是否具有执行权限
		then
			echo -x file
		fi
		if [ -w  $file -a -r $file -a -x $file  ]
		then
			echo hello >> $file
		else
			chmod 777 $file
			echo hello >> $file
		fi
		fi
else   

	echo  file not exist
fi

 

练习2:输入一个数,判断是否是回文数

回文数:12321

#!/bin/bash
read -p "please enter num:" num
a=$num
while [ $num -ne 0 ]
do
	((sum=sum*10+num%10))
	((num/=10))
done
if [ $a -eq $sum ]
then 
	echo yes
else
	echo no
fi

 

练习3:输入n,计算n!

#!/bin/bash
read -p "please enter num:" n
a=$n
while [ $n -ne 1 ]
do
((a*=n-1))
	((n--))
done
echo n!=$a

 

练习4:图形打印

   *

  ***

 ***** 

*******

#!/bin/bash
read -p "请输入杨辉三角的行数:" a

for ((i=0;i<a;i++))
do
	for((k=0;k<a-i;k++))
	do
		echo -n " "
	done
	for((j=0;j<=2*i;j++))
	do
		echo -n "*"
    done
	echo " "
done

 

练习5:使用select in循环数组,arr=(Windows Linux Unix Mac),实现页面的交互

如果是Windows,则输出Windows以打开

如果是Linux,则输出Linux以打开

如果是Unix,则输出Unix以打开

如果是Mac,则输出Mac以打开

其他,提示错误

#!/bin/bash
arr=(Windows Linux Unix Mac)
select a in ${arr[*]}
do
	case $a in
		Windows)
			echo window open
			;;
		Linux)
			echo Linux open
			;;
		Unix)
			echo Unix open
			;;
		Mac)
			echo Mac open
			;;
		*)
			echo error
			;;
	esac
done

练习6:输入一个数,判断是否是素数

素数:被1和本身整除

#!/bin/bash
read -p "please enter num:" num
a=$num
count=0
for((i=2;i<num;i++))
do
	c=$(($num%i))		
	if [ $c -eq 0 ]
	then
		((count++))
	fi
done
if [ $count -eq 0 ]
then
	echo yes
else
	echo no
fi

 

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值