@江南大学linux期末上机题
1、编写一个shell脚程程序,参数为大于20的正整数。先检查参数是否符合要求。如果不符合要求,请给出提示;如何符合要求,分别输出其与1到10的乘积。
#!/bin/bash
sum=1;
if (($1>20))
then
for((i=1;i<=10;i++))
do let "sum=$1*i"
echo "$i*$1==$sum"
done
else echo "输入参数不满足大于20"
fi
运行:
2、编写一个shell脚本。该程序能接受用户从键盘输入的10个整数,然后求其总和、最大值以及最小值。
#!/bin/bash
# 初始化变量
sum=0
max=0
min=0
# 循环读取用户输入的10个数
for (( i=1; i<=10; i++ ))
do
echo "请输入第 $i 个数:"
read num
# 检查用户输入是否为数字
if ! [[ "$num" =~ ^[0-9]+$ ]]
then
echo "请输入一个数字"
i=$((i-1))
continue
fi
# 求和、最大值和最小值
(( sum+=num ))
if [[ $i -eq 1 ]]
then
max=$num
min=$num
else
if (($num > $max))
then
max=$num
fi
if (($num < $min))
then
min=$num
fi
fi
done
# 输出结果
echo "所有数的和为: $sum"
echo "最大值为: $max"
echo "最小值为: $min"
3、编写一个弹出式菜单的shell程序并实现简单的菜单功能。
#!/bin/bash
while true
do
echo "****************************************"
echo
echo "* MENU *"
echo
echo "* 1.copy 2.rename *"
echo
echo "* 3.remove 4.find *"
echo
echo "* 5.exit *"
echo
echo "****************************************"
read -p "Enter option number: " option
case $option in
1)
read -p "Enter source file name: " src
read -p "Enter destination file name: " dest
cp $src $dest
echo "File copied successfully!"
;;
2)
read -p "Enter old file name: " oldname
read -p "Enter new file name: " newname
mv $oldname $newname
echo "File renamed successfully!"
;;
3)
read -p "Enter file name to be deleted: " filename
rm $filename
echo "File deleted successfully!"
;;
4)
read -p "Enter file name to be searched: " filename
result=$(find / -name $filename 2>/dev/null)
if [ -z "$result" ]; then
echo "File not found!"
else
echo "File found at: $result"
fi
;;
5)
echo "Exiting menu shell program..."
exit 0
;;
*)
echo "Invalid option entered"
;;
esac
done
over