Я хочу сравнить 3 набора, тогда я пишу скрипт bash, но результат неправильный. пожалуйста, руководство меняBash script несколько строковых переменных сравнения
#!/bin/bash
function SCORETYPE {
if [[ "$ENG1" < "$ENG2" || "$ENG3" < "$ENG4" || "$ENG5" > "$ENG6" ]]; then
STYPE="A"
elif [[ "$ENG1" < "$ENG2" || "$ENG3" > "$ENG4" || "$ENG5" > "$ENG6" ]]; then
STYPE="B"
elif [[ "$ENG1" > "$ENG2" || "$ENG3" < "$ENG4" || "$ENG5" < "$ENG6" ]]; then
STYPE="C"
else
STYPE="D"
fi
echo "$STYPE"
}
# DATA for A
ENG1=10; ENG2=15; ENG3=5; ENG4=7; ENG5=45; ENG6=15
echo -n "Correct is A -- Answer is = "; SCORETYPE
# DATA for B
ENG1=3; ENG2=10; ENG3=8; ENG4=7; ENG5=40; ENG6=38
echo -n "Correct is B -- Answer is = "; SCORETYPE
# DATA for C
ENG1=12; ENG2=9; ENG3=6; ENG4=9; ENG5=32; ENG6=50
echo -n "Correct is C -- Answer is = "; SCORETYPE
# DATA for D
ENG1=12; ENG2=9; ENG3=9; ENG4=8; ENG5=32; ENG6=50
echo -n "Correct is D -- Answer is = "; SCORETYPE
результат сценария
корень @ прокси:/TMP # VI multiple_var_test & & ./multiple_var_test
Правильные является A - Ответ = A
Correct B - Ответ is = A
Правильно C - Ответ = A
Correct является D - Ответ = A
Вы, вероятно, хотели использовать && вместо || ... условия if else не имеют смысла с или || оператор –