История изменений
Исправление debugger, (текущая версия) :
Видимо для тех, кто из старой школы и чтобы не переучиваться.
При чём тут старая школа и «не переучиваться»? В первых версиях шелла команда test в соответствии с философией была внешней программой, шелл про неё ничего не знал. А в шелле знак > означает перенаправление вывода. поэтому test $# > 0 означает «перенаправить вывод команды test в файл с именем «0»». Отсюда и -gt, потому что каждый раз экранировать > неудобно, чревато ошибками, да и выглядит test $# \> 0 даже хуже чем test -gt 0. По этой же самой причине логические операции пишутся как -a и -o.
И только потом присобачили алиаc [ и сделали test встроенной командой (не знаю в каком порядке). Для обратной совместимости — чтобы не ломать уже написанные скрипты — синтаксис менять не стали, а не для того, что б «не переучиваться».
В отличие от test, [[ — изначально встроенная команда, парсится и исполняется шеллом, поэтому внутри двойных квадратных скобок && и || могут иметь (и имеют) другой смысл, чем снаружи. То же справедливо и для ((.
Исходная версия debugger, :
Видимо для тех, кто из старой школы и чтобы не переучиваться.
При чём тут старая школа? В первых версиях шелла команда test в соответствии с философией была внешней программой, шелл про неё ничего не знал. А в шелле знак > означает перенаправление вывода. поэтому test $# > 0 означает «перенаправить вывод команды test в файл с именем «0»». Отсюда и -gt, потому что каждый раз экранировать > неудобно, чревато ошибками, да и выглядит test $# \> 0 даже хуже чем test -gt 0. По этой же самой причине логические операции пишутся как -a и -o.
И только потом присобачили алиаc [ и сделали test встроенной командой (не знаю в каком порядке). Для обратной совместимости — чтобы не ломать уже написанные скрипты — синтаксис менять не стали, а не для того, что б «не переучиваться».
В отличие от test, [[ — встроенная команда, парсится и исполняется шеллом, поэтому внутри двойных квадратных скобок && и || могут иметь (и имеют) другой смысл, чем снаружи. То же справедливо и для ((.