Сегодня столкнулся с очень странно вещью
Суть задачи была достаточно проста в систему мониторинга закинуть резкие всплески количества писем в очереди.
я быстренько накидал правило
test "99" \> "$(mailq|wc -l)"; echo $?
на самом деле там немного по лсложнее но суть это не меняет.
И так фишка в чем
Если
$(mailq|wc -l)
= "15", то подсчет будет работать правильно НО только до появления нового регистра 100 уже будет выдавать статус
0
или если поменять знак в другую сторону то
1
но ни как не от чисел
1000 и тд то же самое
Собственно поверяем значение переменной
root@ks04 ~ $ mailq|wc -l
49971
А вот что возвращает test
root@ks04 ~ $ test "99" \> "$(mailq|wc -l)"; echo $?
0
root@ks04 ~ $ test "9999" \> "$(mailq|wc -l)"; echo $?
0
root@ks04 ~ $ test "99999" \> "$(mailq|wc -l)"; echo $?
0
root@ks04 ~ $ test "999999" \> "$(mailq|wc -l)"; echo $?
0
root@ks04 ~ $ test "999999" \< "$(mailq|wc -l)"; echo $?
1
root@ks04 ~ $ test "99999" \< "$(mailq|wc -l)"; echo $?
1
root@ks04 ~ $ test "9999" \< "$(mailq|wc -l)"; echo $?
1
root@ks04 ~ $ test "999" \< "$(mailq|wc -l)"; echo $?
1
root@ks04 ~ $ test "99" \< "$(mailq|wc -l)"; echo $?
1
root@ks04 ~ $ test "9" \< "$(mailq|wc -l)"; echo $?
1
И можно было бы предположить что что-то не работает, но фишка в том что до 99 все считается норм ( когда значение переменной меньше 100)
1. Почему так
2. че делать ?