Не знаю, как вы собираетесь использовать (
и )
с операторами bash , однако это сработает:
if [ 0142 -ge 0045 ] && [ 0142 -lt 0130 ]; then
echo "yep"
fi
Если это не то, что вам нужно, вставьте как можно больше релевантного кода.
Как указано в комментариях ниже, это действительно вызовет проблемы, поскольку сравнивает восьмеричные числа с (в конце концов после 10:00 )десятичными числами
Я бы рекомендовал использовать date
для преобразования времени в секунды, а затем сравнить это.
Примером может быть:
# grab these however you are currently
time1="01:42"
time2="00:45"
time3="01:42"
time4="01:30"
time1Second=$(date -d "${time1}" +%s)
time2Second=$(date -d "${time2}" +%s)
time3Second=$(date -d "${time3}" +%s)
time4Second=$(date -d "${time4}" +%s)
# then your comparison operators and logic:
if [ "$time1Second" -ge "$time2Second" ] && [ "$time3Second" -lt "$time4second" ]; then
# logic here
echo true
fi
Таким образом, вы всегда сравниваете числа по одному и тому же основанию
Существует альтернативное решение, если вы просто хотите запустить rpm -qa | grep httpd
на удаленном хосте, есть инструмент sshpass
. Вы можете обратиться к этой ссылке для установки и общего использования.
https://www.tecmint.com/sshpass-non-interactive-ssh-login-shell-script-ssh-password/