История изменений
Исправление wandrien, (текущая версия) :
Я не то что б часто что-то крупное пишу на bash, но скажу в целом по опыту программирования на шеллах.
«Собрать коллекцию однотипных штук и потом обработать» – это типовое действие при решении задач на любых ЯП, а на ЯП с такой бедной палитрой типов данных как у шелла, оно становится еще востребованнее.
И в sh единственный массив, который тебе дают на руки - это "$@"
. И порой через него и приходится выкручиваться, с вызовом функций, shift
и так далее. Но вызовы функций имеют собственные ограничения и не всегда ложатся в нужный алгоритм.
Вообще большая часть программирования на sh и состоит из этого: выкручиваться. Когда у тебя на каждую фичу по полдюжины антич, и тебе мало придумать алгоритм – тебе еще надо придумать, как его закодировать на этом эзотерическом языке, обойдя все грамотно расставленные капканы.
Ну своего рода это тоже удовольствие – типа как в Римку поиграть на «Проигрывать весело» и получать кайф от того, что «я из такой жопы вышел победителем в очередной раз».
Тут еще что важно, на мой взгляд. Если человек ишет про преимущества bash и в числе основного упоминает сахар [[ ]]
, а работу с массивами и дополнительные фичи по parameter expansion не упоминает – значит он ничего существенного на sh не писал.
Потому что всратый синтаксис для условных выражений – это конечно неприятно, но терпимо. Мы со знанием синтаксиса не рождаемся, остальные синтаксисы мы точно так же учили. А гораздо хуже, когда операционная модель шелла никак не налазит традиционные ЯП и привычные паттерны проектирования, и приходится изобретать язык внутри языка из костылей и подпорок. При этом подпорки не удаётся завернуть в абстракции, а они так и лежат кишками наружу, в результате чего программирование становится похоже на то, что ты в уме компилируешь алгоритм и пишешь его в извращенных машкодах этого промежуточного языка. Вот bash даёт больше инструментов, чтобы код был чуть более высокоуровневым.
Исходная версия wandrien, :
Я не то что б часто что-то крупное пишу на bash, но скажу в целом по опыту программирования на шеллах.
«Собрать коллекцию однотипных штук и потом обработать» – это типовое действие при решении задач на любых ЯП, а на ЯП с такой бедной палитрой типов данных как у шелла, оно становится еще востребованнее.
И в sh единственный массив, который тебе дают на руки - это "$@"
. И порой через него и приходится выкручиваться, с вызовом функций, shift
и так далее. Но вызовы функций имеют собственные ограничения и не всегда ложатся в нужный алгоритм.
Вообще большая часть программирования на sh и состоит из этого: выкручиваться. Когда у тебя на каждую фичу по полдюжины антич, и тебе мало придумать алгоритм – тебе еще надо придумать, как его закодировать на этом эзотерическом языке, обойдя все грамотно расставленные капканы.
Ну своего рода это тоже удовольствие – типа как в Римку поиграть на «Проигрывать весело» и получать кайф от того, что «я из такой жопы вышел победителем в очередной раз».
Тут еще что важно, на мой взгляд. Если человек ишет про преимущества bash и в числе основного упоминает сахар [[ ]]
, а работу с массивами и дополнительные фичи по parameter expansion не упоминает – значит он ничего существенного на sh не писал.
Потому что всратый синтаксис для условных выражений – это конечно неприятно, но терпимо. Мы со знанием синтаксиса не рождаемся, остальные синтаксисы мы точно так же учили. А гораздо хуже, когда операционная модель шелла никак не налазит традиционные ЯП и привычные паттерны проектирования, и приходится изобретать язык внутри языка из костылей и подпорок. При этом подпорки не удаётся завернуть в абстракции, а они так и лежат кишками наружу, в результате чего программирование становится похоже на то, что ты в уме компилируешь алгоритм и пишешь его в извращенных машкодах этого промежуточного языка.