Comments 8
>Командная оболочка Bash хороша, но когда дело доходит до написания скриптов, люди часто выбирают более удобный язык программирования, и JavaScript прекрасно для этого подходит.
То, что люди не хотят потрать несколько часов на изучение shell никак не говорит о том, что шелл «менее удобный». Даже привычный для админов python в каких-то чисто шелловских задачах излишен, и решения на шелле будут элегантнее и проще. Зачем тащить еще один тулчейн в сферу, в которой есть гораздо более привычные инструменты — мне не очень понятно.
А в приведенном примере как бы совсем не видны обещанные свойства "серебряной пули". Код получился громоздким, менее очевидным, чем шелловский, понятным только тем(извините), кто пишет на JS, и самое главное — задача совершенно не шелл-специфичная, и непонятно, зачем тут вообще вспоминали про шелл. Грубо говоря, пишите на JS и вам нужна тулза для вашего JS-тулчейна — прекрасно, пишите на JS, только за пределы своего JS-мира лучше не навязывайте.
В корне не согласен с "потратить несколько часов на изучение shell". Язык баш абсолютный антипод к правилу "один раз научившись ездить на велосипеде ты будешь ездить на нем всегда". Я раза 4 с нуля учил баш и стоит им не пользоваться в течении полугода-года, так код на нем вновь превращается в головоломку и приходится по новой открывать мануалы.
Если ты каждый день пишешь скрипты - ок используй шелл на здоровье win win. Если шелл тебе нужен ну очень ситуативно пару раз в год, то лучше не тратить на него свое время и воспользоваться более сподручным инструментом.
>Я раза 4 с нуля учил баш и стоит им не пользоваться в течении полугода-года, так код на нем вновь превращается в головоломку
Как-то так ¯\_(ツ)_/¯
Язык или инструменты командной строки (которые выполняют функцию скорее библиотек и фреймворков в более обычных языках, а то и реализуют собственные языки)?
А то выйдет как в том анекдоте:
— Ну что, господа студенты, кто назовет мою фамилию, тому сразу 5 в зачетку.
Тишина.
— Ладно, вопрос на 4: какой предмет сдаем?
Голос с камчатки:
— Во валит!
Я точно такие же скрипты на обычном node.js могу писать, зачем мне этот пакет?
Командная оболочка Bash хороша, но когда дело доходит до написания
скриптов, люди часто выбирают более удобный язык программирования
Да
и JavaScript прекрасно для этого подходит.
Да, если знаешь только JavaScript. Сделать выбор из одного варианта несложно. Если же знаешь что-то ещё - однозначно нет.
Шелл-скрипты предназначены для того, чтобы быть клеем между остальными утилитами. Именно так их и следует использовать. По мере появления более сложных задач появляются и другие языки, более сложные и с разным предназначением: от обработки текста до полноценного ООП. Это awk, perl, ruby, python.
Пожалуйста, используйте JavaScript в той области, для которой он создан - для выполнения скриптов в браузере. Все остальные задачи решаются более подходящими инструментами.
Возможно Вам будет интересно узнать, что JS уже очень давно не является инструментом для выполнения скриптов в браузере, но является полноценным скриптовым языком для встраивания куда угодно.
Строго говоря JS намного удобнее Bash. Решение же из материала выше, это пример того как натягивают сову на глобус. Сначала v8 встроили в ноду, для которой потом прикрутили баш лайк поведение, вместо того, чтобы реализовать полноценный шелл без лишних сущностей.
Используйте zx.js вместо Shell