Rodegast
Я же тебе тут сцылку дал.
Да я глянул сейчас, ничего там нет, очень поверхностно.
Никогда не видел выражения
[guest@localhost ~]$ if [ 1 -le 5 ]; then echo yes; else echo no; fi
yes
[guest@localhost ~]$ if [ 6 -le 5 ]; then echo yes; else echo no; fi
no
[guest@localhost ~]$
?
Вот знаешь, что такое
?
Это программа, которая возвращает код возврата.
И if как раз его и проверяет; истиной считается нулевой код возврата, поэтому по нулевому коду срабатывает ветвь then. А если там не нулевой код возврата, то срабатывает ветвь else.
Вот тебе ещё пример, как запустить else
[guest@localhost ~]$ if ping nothing; then echo yes; else echo no; fi
ping: unknown host nothing
no
[guest@localhost ~]$
Как получилось, что произошёл переход в else? Просто ping не сработал и вернул ненулевой код возврата. А if считает такой код ложным. Это хоть и внутреннее дело bash, как вести себя в if'е, но оно проистекает из истории, из того, как было в sh, из которого bash вырос.
Rodegast
Похоже что ты тут уже специально придуриваешся.
Я могу тебе пример закинуть ещё. Но ты в этих-то не разобрался. Там просто, я боюсь, у тебя вообще крыша поедет от того, как оно там всё работает. Ведь оно перевернёт всю твою теорию, что типа планета держится на трёх китах - что приложение может быть только одно в каждый момент времени.