单片机与嵌入式系统考试Shell编程题库,简单地做了下。
1、提示输入N个学生的成绩,并将百分制成绩转换为5分制成绩,最后将学号、成绩保存在score.dat中。
转换规则[90,100]=5,[80,90]=4,[70,80]=3,[60,70]=2,[0,60]=1。
2、从屏幕上输入N个数据,将它们排序,把排序后的结果保存在result.dat中。
3、判断/home/tesh.sh文件是否存在,如果存在,删除该文件,如果不存在,创建该文件。
4、从屏幕上输入N个数,寻找这N个数的最大值,最小值,并输出。
5、计算"1+2+3+...+100"的和,并输出结果。
6、提示输入一个字符,如果输入“Y”,输出“right!”,如果输入“N”,输出“wrong!”,如果是其它输入,输出“bad input!”,并要求重新输入。
7、提示输入两个数,然后提示输入运算符“+或-”,根据运算符做“+、-”运算,最后输出结果。
8、判断/home/exam目录是否存在,如果存在,删除该目录,如果不存在,创建该目录。
9、提示输入两个数,然后提示输入运算符“+、-、x”,根据运算符做“+、-、x”运算,最后输出结果。
#!/bin/bash # test1.sh # 2016.1.2 echo "Please input N student grade:" read -a grade for ((i=0;i<${#grade[@]};i++)) do if [[ ${grade[i]} -ge 90 ]] then grade[i]=5 elif [[ ${grade[i]} -ge 80 ]] then grade[i]=4 elif [[ ${grade[i]} -ge 70 ]] then grade[i]=3 elif [[ ${grade[i]} -ge 60 ]] then grade[i]=2 else grade[i]=1 fi done #echo ${grade[*]} echo ${grade[*]} > score.dat
#!/bin/bash # test2.sh # 2016.1.2 echo "Please input N number:" read -a arr for ((i=0;i<${#arr[@]};i++)) do for ((j=${#arr[@]}-1;j>i;j--)) do if [[ ${arr[j]} -lt ${arr[j-1]} ]] then t=${arr[j]} arr[j]=${arr[j-1]} arr[j-1]=$t fi done done echo ${arr[*]} > result.dat
#!/bin/bash # test3.sh # 2016.1.2 cd /home if test -e tesh.sh then rm tesh.sh else touch tesh.sh fi
#!/bin/bash # test4.sh # 2016.1.2 if [ -z "$1" ] then echo "You should input N num!" exit 1 fi max=$1 min=$1 for num in $* do if [ $num -gt $max ] then max=$num fi if [ $num -lt $min ] then min=$num fi done echo "Max: $max , Min: $min"
#!/bin/bash # test5.sh # 2016.1.2 j=0; for ((i=1;i<=100;i++)) do j=`expr $i + $j` done echo $j
#!/bin/bash # test6.sh # 2016.1.2 echo "Input 1 char:" read a if [ $a = 'Y' ] then echo "right!" elif [ $a = 'N' ] then echo "wrong!" else echo "bad input!" fi
#!/bin/bash # test7.sh # 2016.1.2 echo "Input 2 Number:" read a read b echo "Input + or - :" read op if [ $op = '+' ] then x=`expr $a + $b` elif [ $op = '-' ] then x=`expr $a - $b` fi echo $x
#!/bin/bash # test8.sh # 2016.1.2 cd /home if test -d exam then rm -r exam else mkdir exam fi
#!/bin/bash # test9.sh # 2016.1.2 echo "Input 2 Number:" read a read b echo "Input + or - or x:" read op if [ $op = '+' ] then x=`expr $a + $b` elif [ $op = '-' ] then x=`expr $a - $b` elif [ $op = 'x' ] then x=`expr $a * $b` fi echo $x
OK!