1. bash / Говнокод #15389

    −126

    1. 1
    2. 2
    3. 3
    4. 4
    while [ 1 ]
    do
      # ....
    done

    Прикололо. Не уверен что автор даже знает почему/как именно это работает.

    Запостил: Dummy00001, 07 Марта 2014

    Комментарии (8) RSS

    • А работает ли? Я не спец по башу, но насколько я помню 1 - это ложь.
      Ответить
      • Да, работает.

        > почему/как именно это работает
        Видимо тут используется конструкция [ строка ], которая возвращает true (exit code 0) если строка не пуста. А "1" - непустая строка (равно как и "0", от которого цикл тоже крутится бесконечно).

        -n STRING
        the length of STRING is nonzero

        STRING equivalent to -n STRING

        Ответить
        • ясно. буду знать, спасибо.
          Ответить
        • Тут хотя бы однозначно, а вот, например, expr багнутый http://pubs.opengroup.org/onlinepubs/009695399/utilities/expr.html
          > The use of string arguments length, substr, index, or match produces unspecified results.
          Ответить
          • ты путаешь "строка"/"число" как тип данных, и "строка"/"число" как представление данных в памяти. данные в шелле всегда представляются (и передаются программам) как строки. программы (как тот же expr) пытаются из строчного представления вытянуть данные желаемого типа.
            Ответить
    • Павел после последних слов друга резко поднял голову и уставился на меня. Вот, он понял, что я врал тогда, в кабинете. Я же смотрел в ответ на него и, как ни странно, не выражал никаких эмоций, хотя в душе творился кавардак. "Блин, и кто его за язык-то тянул?" - промелькнуло у меня в голове.
      Ответить

    Добавить комментарий