LINUX.ORG.RU
ФорумAdmin

Уход от bash скриптов

 , ,


0

4

Чем сейчас модно заменять обычные shell скрипты? Хочется такого же легкого доступа к системе и менее инопланетного синтаксиса выражений. Есть руководства по уходу от plain scripts к чему-нибудь более компактному, интуитивному и легкоусвояемому?

Всем спасибо.

ничем /thread

anonymous
()

bash/Python/Perl хватит всем.

ymn ★★★★★
()

Любой язык, способный выполняться без предварительной компиляции. Хоть Си при помощи TinyCC

olibjerd ★★★★★
()

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

Кстати, bash вполне себе имеет жалкое некое подобие include, поэтому называть его скрипты plain не совсем корректно. Как вариант, посмотри в начало любого init-скрипта, как подключаются functions.

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

Синтаксис bash приводит меня в недоумение. Например, как соотносятся if [ ] и if [[ ]], почему

if [ ]
then
fi
, но
 if [ ]; then
fi
и т.п. Хочется чего-то более однозначного.

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

Хочется чего-то более однозначного

питон же -))

Alyssa
()
Ответ на: комментарий от SevikL

куда проще-то (если отбросить страх в регэкспах)?

похоже чтобы ты понял бы всю суровость bash — для тебя я должен наделать файлов, названия которых начинаются на знак минус, а заканчиваются на символ пробела :-) (а в середине своих названий — сожержат всякого рода ковычки :))

вот и посмотреть бы на тебя как ты будешь отлавливать внутри своих bash-простыней — места в коде где ты забыл очередной раз что-то там заэкранировать.. особенно при работе со списками в bash

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

А считай что угодно будет проще почти на любых задачах. Баш --- жутко неудобный и сложный язык, если попытаться сделать на нём что-то, выходящее за рамки команда | grep | awk > файл.

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

куда проще-то

bash вполне себе подходит для однострочников или скриптов меньше 10 строк. Если больше — надо брать питон. Ну это если рассуждать как взрослый адекватный человек, которому не нужен лишний геморрой.

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

точка с запятой — потому что — две операции на одной строчке (точка с запятой их разделяет)

эхх... мне бы твои проблемы :-)

конечно bash заставляет создавать говно вместо года... но проблема явно не в точках с запятой :-)

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

bash заставляет создавать говно вместо года

Ну да, ну да.

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

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

ТС попросил моднее и проще - насчет моды хз, но баш прост, особенно поначалу, для нубозадач.

простыней не держу, выбираю инструменты сугубо из потребностей, сурового фанатизма за собой не наблюдаю.

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

Последняя версия 5.0 — 2011 г.

И что ты предлагаешь?

Выбор у меня невелик: либо bash, либо Perl, либо Python с Tcl.

Я хочу наиболее гуманный вариант.

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

но баш прост

нет. он офигительно сложен.

особенно поначалу

ну особенно просто на bash писать скрипты, которые работают с глюками — это ты хотел сказать? :-)

user_id_68054 ★★★★★
()

Смотря какие цели преследуешь, может тебе нужен Ansible\Puppet?

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

вот как же быть то тут. не хочешь никого обидеть, а он так и просит.

коли ты пишешь скрипты, которые на баше, да еще и с глюками работают - ты не простой неосилятор, тебе надо жизнь менять, метлой, например, размахивать.

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

ты не простой неосилятор, тебе надо жизнь менять, метлой, например, размахивать.

я да — неосилятор :-) [допустим].. но мы же не про меня говорим, а про bash :-D .

не хочешь никого обидеть, а он так и просит.

ды я не обижаюсь, уж поверь :-)

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

но баш прост

Это если не пытаться писать на нём хорошо структурированный код, учитывающий все возможные входные условия и корректно обрабатывающий ошибки.

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

init-скрипта
2015

думаешь, если эстета-ТС воротит от вида баш-скриптов, его не будет выворачивать от исходников/архитектуры systemd просто потому, что их не видно?

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

либо Python с Tcl.

Сам и ответил. Самые гуманные варианты.

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

Я хочу наиболее гуманный вариант.

tcl

tclsh + tclreadline — вполне интерактивен

bash впрочем для интерактивной оболочки привычен,
повсеместен и незаменим пока

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

либо Perl, либо Python с Tcl.

Собственно, что больше нравится, то и используй.

ugoday ★★★★★
()

очевидный Питон же

Dred ★★★★★
()

на такой случай отлична поговорка «плохому танцору яйца мешают».

в bash есть удручающие моменты, например то что [ это всего лишь команда, значит обязательно нужно ставить пробел.

если в обычном ЯП пишешь if () { } делая 8 нажатий на кнопок (с учетом нажатий пары стрелочек), то в bash if [ ]; do ; fi делаешь все 16 нажатий кнопок — в два раза больше, чтобы написать тоже самое условие.

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

кто знает, может найдутся хипсторы которые напишут в скором времени новый современный shell, и оно станет лучшей заменой устаревшему bash, пережившему не одно поколение людей. но пока так... работает и ладненько.

а для души я бы посоветовал Perl.

а Python это бейсик какой-то, тянке код покажешь, засмеет же.

ну или взять vim, потратить несколько месяцев на его настройку, обвешивание плагинами, хоткеи, и писать на pure C, с автокомпиляцией и автозапуском кода. тогда vim заменит вам shell, а vim однажды — vim навсегда.

Spoofing ★★★★★
()

if [[ ]]

это встроенный башевский оператор, позволяющий юзать сложные условия с && и || например

if [ ]

а это - древняя штука заработает везде, где нет баша так как [ это симлинк на программу test

по сабжу - python + fabric

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

Баш --- жутко неудобный и сложный язык,

Но тем не менее в качестве shell почти не используется что-то другое

goingUp ★★★★★
()

powershell. В пятой версии ещё и классы завезли.

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

bash и есть компактный, интуитивный и легкоусвояемый

В твоем случае он скорее неосиляторский.

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