LINUX.ORG.RU

А есть ли сделанный с умом shell scripting language?

 ,


1

5

sh, bash, ksh это всё пережитки каких-то очень древних годов. Использовать их для каких-то относительно сложных вещей — тот ещё квест. Современные языки программирования ушли далеко вперёд.

С другой стороны языки программирования общего назначения хотя и могут без проблем делать всё, что делает bash, но таки манипуляции с файлами, запуск программ и тд на баше выглядит элегантней.

Хочется и то и другое. Хочется такой язык программирования, который с одной стороны был достаточно современным (ООП, ФП, модули и тд), с другой стороны манипулировать файлами, запускать программы, соединять их было бы не сложней и не многословней, чем в bash-е. Ну и хорошая поддержка манипуляции с текстом, хотя бы на уровне регэкспов.

Есть ли такое в природе?

★★★★★

Использовать их для каких-то относительно сложных вещей — тот ещё квест.

не используйте для сложных

Современные языки программирования ушли далеко вперёд.

их используйте

Для zsh, к слову, попадались модули для perl/python, позволяющие писать на perl/python в zsh.

salsa
()

Есть ли такое в природе?

Tcl/Tk

anonymous
()

Если тебе нужно выполнить пачку команд и какую-то минимальную логику (a.k.a сценарий) — шелл. В противном случае бери твой любимый язык программирования. Не вижу проблемы.

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

Perl это язык общего назначения, там нет поддержки выполнения программ, файлов и тд, насколько я знаю. На уровне перла можно и в какой-нибудь скале DSL слепить.

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

там нет поддержки выполнения программ, файлов и тд

Ага, б***, там только регекспы и всё.

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

Очень интересно и Python хороший выбор. Пока остановлюсь на нём.

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

Я тебе, в свою очередь, могу, на самом, перечислить кучу моментов, которые на ps делаются однострочником, а в баше - через ж.

Да, если вас не затруднит, только с комментариями, пожалуйста.

Zmicier ★★★★★
()

Лучше Perl'а еще не придумали.

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

насколько я знаю

Оценил язык по афаик, не осилив открыть мануал. Зачем вообще было что-то спрашивать, если современный бейсик для лузеров только один и известен заранее :D

arturpub ★★
()

А есть ли сделанный с умом shell scripting language?

scsh на схеме, или сразу та схема без шелла.

любой лисп с #!

rc из Plan 9 с лямбдами

tclsh, наконец

emacs --batch file.sh

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

Perl это язык общего назначения, там нет поддержки выполнения программ, файлов и тд, насколько я знаю.

Плохо знаешь, как раз для этого в перле куча синтаксического сахара

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

Icon или Unicon (с ОО) с ковыражениями.

как пример, на Icon какое-то Literate Programming средство на ковыражениях было написано: запустили продолжение, запустили другой поток, третим потоком внешнюю программу и по подвыражениям скормили через пайпы между программами, CSP каналами между green threads, выражениями и ковыраженями.

ещё там монитор ресурсов, монитор выполнения скриптов (для профилирования) есть.

anonymous
()

варианта всего два - powershell и Tcl/Tk. в силу специфичности первого чаще всего использую tclsh.

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

какой-то GUI, даже 3D OpenGL тоже имеется.

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

ещё читай примеры про Reproducible Research, Literate Programming

например, за авторством Эрика Шульте

* CiSE — статью и исходник

* с сайта

Eric Schulte, Dan Davison, Tom Dye, Carsten Dominik. A Multi-Language Computing Environment for Literate Programming and Reproducible Research Journal of Statistical Software (JSS site (supplemental materials), PDF, Bibtex)

скачай архив с материалами, и посмотри Makefile — как там emacs --batch file.el запускается, и что он делает:

* ходит в SQL базу

* запускает внешние программы

* обрабатывает их через SH/Elisp/R

* генерит картинки с графиками

* верстает всё это в отчёт

Eric Schulte, Dan Davison. Active Documents with Org-Mode Computing in Science & Engineering 2011 (PDF, Bibtex, source)

может, и тебе что-то из этого пригодится.

anonymous
()
  1. накидай в /usr/bin собственных скриптов на любимом языке, которые делают-что-тебе-нужно
  2. используй их в любимом шелле
  3. назови это каким-нибудь PowerShell4Linux
  4. раздай или продай
  5. PROFIT

Не всем интересно осуществлять все эти пункты, наверно поэтому мы и не видим подобных решений.

blexey ★★★★★
()

Посмотри в сторону Ipython. Есть всё, что умеет обычный питон + магические комманды, которые упрощают простые операции, вроде %cd или %pwd + макросы + простой запуск системных утилит с автоматическим захватом вывода (out = ! ps aux | grep zsh) + удобнейшая qtconsole с автокомплитом всего, что только можно

Anvill
()

Powershell, Beanshell. Остальное нинужно.

anonymous
()
16 июня 2017 г.
Ответ на: комментарий от alex_the_v

Плюсую.

Если стоит задача лопатить логи приложений и на unix (AIX, Solaris и прочие не только линуксы), и на windows (у меня такое всплывает постоянно, ибо приложения на AIX, Solaris, RHEL, Windows), то выбор редуцируется до между perl и python. Однако, фактически остаётся один perl (python на AIX? из-за скрипта на 50 строк ставить линукс-тулз и питон? отдел информационной безопасности начинает смотреть на вас с подозрением), да к тому же какой-нибудь древней версии типа 5.8.

beck ★★★★
()

Groovy, как ни странно.

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

Ну я когда на авесоме сидел там было сотни две открытых issues. А сейчас 150. И ничего, заброшкой не считается. Это видимо нормально для динамического говна (что там lua, что тут js).

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

поделка для Ноды

vs.

наипопулярнейший тайловый оконный менеджер


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

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