임 베 디 드 시험 셸 프로 그래 밍 문제

7790 단어
싱글 칩 마이크로컴퓨터 와 내장 시스템 시험 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!
 

좋은 웹페이지 즐겨찾기