Уважаемыее, предлагаю к вашему рассмотрению патч к парсеру bash-4.2, который позволит повысить производительность написания скриптов.
Преамбула
У всех своё понимание активного отдыха. У меня, как и у любого специалиста ИТ, очень часто возникает необходимость отвлечься от текущей задачи (которая никак не хочет решаться) и сделать нечто постороннее. В один из таких моментов мне и пришла в голову блестящая мысль — отдохнуть с пользой. А именно — выпить кофе и заглянуть в парсер bash-4.2 с целью проверки неких идей, связанных с знаменитыми по прошлому году дырами в безопасности.
Амбула
В результате распития кофе родился уникальным в своём роде акселератор труда системных администраторов — «Effective Bash», или если коротко — ebash. Суть изменений парсера также проста, как и гениальна: все мусорные ключевые слова, а именно — then, do, fi, done — заменены на тривиальные символы фигурных скобок. Наконец-то системные администраторы *nix, смогут избавиться от рудиментов паскалебейсика в своём излюбленном инструменте и сэкономить несколько символов в коде скриптов, как это делают программисты C. К сожалению, совместимость с bash пришлось сохранить, так как в противном случае десятилетия труда системщиков пропали-бы в туне с переходом на ebash.
Если вы являетесь руководителем системных администраторов — это и ваш инструмент. Подходите к самому ленивому из своих сисадминов и протягиваете на флэшке патч. Он и спрашивает: «Что это?». А вы ему прямо так название патча и произносите. Он, конечно, будет в восторге и сразу примется за дело.
Собственно, сам патч.
Новые возможности
Благодаря смене синтаксиса становится очень трудно отличить списки от языковых конструкций визуально:
for i in a ba c d
{
echo $i
if [ $i == "d" ]
{
echo {man,pan,wan,wohoo,{sublist,ok}}
}
}
Тоже самое одной строкой:
for i in a ba c d; { echo $i; if [ $i == "d" ]; { echo {man,pan,wan,wohoo,{sublist,ok}}; }; }
А уж какой простор открывается для всевозможных эксплоитов — трудно вообразить.
Всех с первым апреля!