Как можно избежать ввода -le 100 каждый раз.
Ну, вы можете ввести что-то еще:
test_lower_equal_100() { [ "$1" -le 100 ]; }
if test_lower_equal_100 "$m1" && test_lower_equal_100 "$m2" && test_lower_equal_100 "$m3" && test_lower_equal_100 "$m4" && test_lower_equal_100 "$m5"
Вы можете перебирать имена переменных:
for i in m1 m2 m3 m4 m5; do
if [ "${!i}" -le 100 ]; then
echo "mark $i is lower or equal to 100"
fi
done
или зацикливание значений:
for i in "$m1" "$m2" "$m3" "$m4" "$m5"; do
if [ "$i" -le 100 ]; then
echo "value $i is lower or equal to 100"
fi
done
Я бы оставил код таким, какой он есть, так как он является и многословным, и читаемым, и обслуживаемым.Я бы процитировал переменные, добавил -r
к read
и использовал арифметическое расширение bash if ((m1 <= 100 && m2 <= 100 && m3 <= 100 && m4 <= 100 && m5 <= 100)); then
.