LINUX.ORG.RU

Ищу удобную альтернативу Bash

 , ,


1

3

Навеяно недавними новостями.

Собственно, я ищу примитивный, башеподобный язык для написания скриптов вида: выполнить n команд с парой условий.

Bash и его производные настолько ужасны, что тут даже обсуждать нечего. Легаси в 3-м поколении.

Python слишком многословен, особенно для запуска процессов и работы с путями. Возможно есть врапперы, но я сходу ничего не нагуглил. А это самые типовые задачи. Примеры:

# запуск процесса
run(['ls', '-l'])
# получение расширения файла
splitext("text.txt")[1][1:]
# конкатенация путей
join('/home', 'user')
И это с реэкспортом функций, что не канон.

Fish выглядит самым адекватным решением, но работа с переменными просто ужасна. Например создание списка: set -l mylist 1 2 3. Или инкремент счётчика set i (math "$i + 1"). Зато условия пофиксили.

Поэтому ищу или удобный скриптовый язык или либы для питона.

PS: Ещё интересно было бы услышать что в Bash у вас вызывает самую сильную боль. Я бы, например, не отказался бы от встроенной фичи для проверки существования субкоманд, типа require grep

★★★★★

Последнее исправление: RazrFalcon (всего исправлений: 1)

rexx в какой-то реализации, например regina или oorexx

простой человекочитаемый синтаксис, переносимость подо всё. в oorexx ещё и смоллтокова объектная модель с метаклассами, и это читается полегче ruby

rc shell из plan9 (из plan9port) или его потомков es, xs — там есть списки и лямбда функции

anonymous
()

Будь мужиком, напиши свой! :-)

А вообще я fish юзаю. Привык к нему и как-то не замечаю недостатков. До этого zsh пользовад

anonymous
()
Ответ на: нашел от sqq

Дока хаотичная. Нужно тыкать.

RazrFalcon ★★★★★
() автор топика

ещё про питонистое. можно взять Bazel.build, систему сборки от Google. оно под OpenJDK современное, так что можно качать один бинарник размером в пару сотен мегабайт, лол. и сразу запускать.

технически оно напоминает Waf, Scons и прочие системы сборки на питоне. здесь есть своя разновидность питона, Skylark (или как там его переименовали). это специального вида питон для задания конфигов.

плагины к этому Bazel.build можно писать на таком вот недопитоне, Groovy, или C++ или Java. и сразу в один мегабинарник все свои плагины интегрировать.

есть дефолтные рецепты сборки под разные платформы Win/Lin/Mac/Android 32/64-bit, и под разные языки: C/C++, Java, yacc из коробки, Go, D,rust, и прочее. по аналогии с рецептами под D можно прикрутить любой компилятор, по аналогии с yacc — любой кодогенератор.

говорят, что этот Skylark — фактически получен такой недопитон без GIL и global lock-ов. который лучше распараллеливается.

может, имеет смысл переписать свои примеры под него.

вообще, любопытная идея у этого Bazel: качаем один бинарник размером в сотни метров, который умеет примерно всё тоже самое, что и Waf (в сотни килобайт).

и получаем из коробки специальную тюнинговую OpenJDK с плагинами, расширяемость плагинами, настройки под все основные среды сборки.

OpenJDK бинарник в сотни метров со своим особенным питоном, с блекджеком и быдлокодерами в плагинах --- это сила, да.

//гуглокапча опять советует велосипеды

anonymous
()

Собственно, я ищу примитивный, башеподобный язык для написания скриптов вида: выполнить n команд с парой условий.
Bash и его производные настолько ужасны, что тут даже обсуждать нечего. Легаси в 3-м поколении.

Может bash и «легаси», но для заявленного функционала - «выполнить n команд с парой условий» - это идеальный инструмент. Хотя бы просто потому, что он везде есть! ) Конечно, о вкусах не спорят, и если вы ищете вариант чисто для себя, на своем компе - флаг вам в руки ). Но если это для других людей, то советую хорошо подумать...

vinvlad ★★
()

Навеяно недавними новостями.

А может лучше не искать другой шел, а думать над тем что делаешь или принять меры безопасноти, например в виде фильтрующего конвеера?

torvn77 ★★★★★
()
Ответ на: комментарий от torvn77

А может лучше на даты смотреть, хоть этого треда, хоть по ссылке?

t184256 ★★★★★
()
Ответ на: комментарий от vinvlad

это идеальный инструмент.

Это минное поле с ужасным синтаксисом.

Хотя бы просто потому, что он везде есть!

На винде нет.

Использую Python - брат жив.

RazrFalcon ★★★★★
() автор топика

Ты не глуп и потому требователен тчк Делай сам тчк

Я вот использую рыбу, и не обсуждаю данное свыше, ибо лень.

anonymous
()
Ответ на: комментарий от RazrFalcon

На винде нет.

Хорошая криокамера, где брал?

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от RazrFalcon

Это минное поле с ужасным синтаксисом.
Использую Python - брат жив.

Есть такое дело - систаксис нетрадиционен и может вызвать отторжение. Лично у меня сильные эмоции вызвал синтаксис работы с массивами )))

Но эта претензия не относится к категории «n команд с парой условий». Для таких простых скриптов тот же Python Bash-у не конкурент, поскольку слишком громоздок. Да и синтаксис у него тоже на любителя... Ну и надо всё-таки не мешать в одну кучу shell и языки типа Python-а. Bash, по своей задумке - это инструмент для «склеивания» в рамках конкретной задачи отдельных вызовов команд и утилит операционной системы. В этом качестве он очень компактен и практичен.

На винде нет

ну мы всё-таки на LOR-е общаемся ) и обсуждаем shell-скрипты

vinvlad ★★
()
Ответ на: комментарий от RazrFalcon

На винде нет.

На offtop-е и линя нет. Фига себе, да?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.