嵌入式考试Shell编程题

单片机与嵌入式系统考试Shell编程题库,简单地做了下。

9. 与题7类似,多了个乘法运算。

#!/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!

时间: 2024-12-19 07:57:42

嵌入式考试Shell编程题的相关文章

中国MOOC_零基础学Java语言_期末考试的编程题_1二进制的前导的零

期末考试的编程题 返回 这是期末考试的编程题,在60分钟内,你可以多次提交,直到正确为止. 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止时间之前提交答案,系统将取其中的最高分作为最终成绩. 1 二进制的前导的零(10分) 题目内容: 计算机内部用二进制来表达所有的值.一个十进制的数字,比如18,在一个32位的计算机内部被表达为00000000000000000000000000011000.可以看到,从左边数过来,在第一个1之前,有27

shell编程题(九)

文本分析,取出/etc/password中shell出现的次数 答案1: cat /etc/passwd | awk -F: '{if ($7!="") print $7}' | sort | uniq -c /etc/passwd 中的数据是以:隔开的 sort是将文件中的每一行作为一个单位,互相比较. 比较的原则是从首字母向后,依次按照ASCII码值进行比较,最后将它们按照升序输出. 参数: -u 去除重复行 -r 降序输出 -o 输入到原文件 (重定向只能输入到新文件) -n 按

shell编程题(十三)

题目: 编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下. 答案: #!/bin/bash for FileName in `ls -l | awk '$5>10240 {print $9}'`; do mv $FileName /tmp done ls -al /tmp 原文地址:https://www.cnblogs.com/wanghao-boke/p/12152199.html

shell编程题(十九)

题目: 设计一个Shell程序,在/userdata目录下建立50个目录,即user1-user50,并设置每个目录的权限,其中其他用户的权限为:读:文件所有者的权限为:读.写.执行:文件所有者所在组的权限为:读.执行. 答案: #!/bin/bash mkdir ./userdata if [ $? -eq 0 ]; then i=1 while [ $i -le 50 ]; do mkdir -p ./userdata/user$i chmod 754 ./userdata/user$i l

shell编程题(五十一)

题目: 显示当前系统上所有用户的shell,要求,每种shell只显示一次: 答案: cut -d: -f7 /etc/passwd | sort -u 原文地址:https://www.cnblogs.com/wanghao-boke/p/12289991.html

运维笔试Shell编程题

一.实现批量添加10个用户,用户名为user01-10,密码为user后面跟3个随机字符: #!/bin/bash for i in `seq -w 1 10` do user="user$i" password=$(cat /dev/urandom | head -1 | md5sum | head -c 3) useradd user$i echo "$user$password" | passwd --stdin $user echo "$user$

shell编程题(六)

题目: 打印当前sshd的端口和进程id 例如:处理结果: sshd Port&&pid: 22 5412 答案: netstat -nltp | grep ssh |awk -F: '{print $2}'| grep -v "^$"|awk '{print "ssh:"$1}' 解析: netstat -nltp Netstat 命令用于显示各种网络相关信息,参数为: -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显

shell编程题(十)

有两个文件如下所示: employee.txt  100 Jason Smith 200 John Doe 300 Sanjay Gupta 400 Ashok Sharma bonus.txt 100 $5,000 200 $500 300 $3,000 400 $1,250 employee.txt记录的是工号和姓名,bonus记录的是工号和工资 将以上两个文件合并并输入为以下格式: 400 ashok sharma $1,250 100 jason smith  $5,000 200 jo

shell编程题(十五)

题目: 文件移动拷贝,有m1.txt m2.txt m3.txt m4.txt,分别创建出对应的目录,m1 m2 m3 m4 并把文件移动到对应的目录下. 答案: #!/bin/bash touch m1.txt m2.txt m3.txt m4.txt I=1 while [ $I -le 4 ]; do mkdir m$I mv m$I.txt m$I I=$((I+1)) done 原文地址:https://www.cnblogs.com/wanghao-boke/p/12149042.h