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)

услышать что в Bash у вас вызывает самую сильную боль

`'"
Deleted
()

JS уже советовали?

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

Напиши свой. Нет, серьезно.


тролль … Характер скверный.

Угу.

Virtuos86 ★★★★★
()

Я бы, например, не отказался бы от встроенной фичи для проверки существования субкоманд, типа require grep

which grep. Не встроенная, но не вижу проблемы.

edit не прочитал "субкомнад", тогда не понял вопрос.

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

Есть xonsh, в котором нет как минимум первого минуса. В качестве interactive shell непригоден из-за перемешивания порядка stderr и stdout, но для скриптинга я лучше ничего не нашёл.

f1u77y ★★★★
()
Последнее исправление: f1u77y (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Зачем было тогда упоминать?

Мда:

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

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

Ты спросил, я дал рекомендацию, которая стоит рассмотрения. Рекламировать свой совет я не обязан.

Virtuos86 ★★★★★
()

встроенной фичи для проверки существования субкоманд, типа require grep

Не совсем то, но есть bash --rpm-requires который перечисляет необходимые для запуска скрипта бинарники.

legolegs ★★★★★
()

Вкусовщина всё это: perl, awk, tcl - тысячи их и у каждого свои плюсы и минусы.

Deleted
()
Ответ на: комментарий от crutch_master

Напиши свой на rust+duktape. Заодно перепишешь duktape на rust.

Зачем duktape? На Rust уже есть шеллы: ion, cicada. Берешь любой и выбрасываешь из него ненужное.

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

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

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

Я что-то не проникся многословностью.

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

Приколько. Жалко пайпы нельзя разделять на несколько потоков и нет &.

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

Если ее невозможно сделать статически - да, без нее.

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

статически типизированный bash

Как это?

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

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

Я уже второй раз пообедал, но лени не убавилось. Кажется, это вообще не связано с сытостью, так что не отлынивай.

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

Не пойму при чём тут ipython. Мне не shell нужен, а скриптовый язык. А у ipython тот же python внутри. Или я что-то не понял?

RazrFalcon ★★★★★
() автор топика
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от sniper21

php-cli

Ад разверзся.

Почитал профиль - стал понятен ваш ответ.

К сожалению, не могу ответить тем же. Но могу прокомментировать, что советовать PHP как инструмент скриптования выглядит довольно странной идеей, хотя, разумеется, этот ЯП является языком программирования общего назначения и способен выполнять такие задачи.

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