Реализация предложения if в простом скрипте bash

У меня есть скрипт bash, который использует cal -m $v где v это номер. Пользователю предлагается vзначение в начале исполнения. В случае, если пользователь нажимает ENTER вместо того, чтобы вводить число, я хочу, чтобы скрипт выводил дни текущего месяца, а именно выполнял просто cal вместо cal -m $v, Есть идеи?

1 ответ

Решение

Мы можем сделать лучше, мы можем сделать проверку диапазона, чтобы убедиться, что это от 1 до 12 включительно. Есть около миллиарда способов сделать это, но вот пара:

if [ "$v" -ge 1 -a "$v" -le 12 ]; then
    cal -m "$v"
else
    cal
fi

Или используйте арифметический тест:

((v>=1 && v<=12)) && cal -m "$v" || cal
Другие вопросы по тегам