LINUX.ORG.RU

Что лучше использовать: питон или баш?

 , ,


1

2

Для системных скриптов, скриптов бекапа и прочего. Обычно строк на 20-100. Много видел тут сообщений о том, что лучше питон чтобы не стрелять себе в ногу башем, но не знаю… как то куча сабпроцесов для вызова системных утилит намекает на то, что инструмент все же не тот. Как считаете? Имеется ввиду если нужно обернуть имеджмэджик, рсинк или еще что то с подготовкой в виде создания папок, проверками на существование, изменение имени по маске или поиск и прочее.



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

баш не требует «кавычек» вокруг строковых констант и перенаправлений ввода-вывода. Питон – вокруг имён переменных и всякой арифметики. Чего в твоей программе будет больше?

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

Чего в твоей программе будет больше?

Программе? Не ослышался? ТС речь ведёт за скрипты, никаких «программ» ему не надо.

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

баш не требует «кавычек» вокруг

Настолько не требует, что начинается целая спецолимпиада, если где-то в данных могут встретиться пробелы…

anonymous
()

Если что-то простое - то bash. Иначе - python.

Чаще всего в какой-то момент переписываю клоунаду с кавычками и условиями bash-а на python.

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

Настолько не требует, что начинается целая спецолимпиада, если где-то в данных могут встретиться пробелы…

Спецолимпиада начинается тогда, когда спрашивающий делает скрипт по обрабоки каких-нибудь ранее жестко зафиксированных другим скриптов данных, типа бекапов YYYYMMDD.tgz, а ему говорят, а в друг у вас будет там имя $(rm *), зачастую даже не понимая, когда и где это действительно распарсится и выполнится. Идиосинкразия к bash-у на самом деле гораздо меньше, чем к perl-у, если уж откровенно, но именно на ЛОР первые более крикливые, не стесняются (может за счёт анонимности) в признании своей ламерности.

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

На питоне можно использовать модуль sh

Спасибо! Прикольная вещь. Теперь потребность в bash'е практически нулевая.

ls-h ★★★★★
()
Ответ на: комментарий от Novator

истон каждый год ломают всё больше.

Где это? Где те изменения несовместимые, что помешают использовать Python как замену bash?

ls-h ★★★★★
()
Ответ на: комментарий от Deleted

Зачем на интересную тему про YouTube настучал? Стукачок.
Хоть локального паука поднимай.
Пошли вы все.

/Nakita

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

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

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

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

Не любой. Я вот сознательно фичи 3.7 юзал, т.к. они мне кровь сохраняли при работе с csv, а именно упорядоченные из коробки словари. Но вот более ранняя версия будет работать на более позднем питоне кроме случаев перехода с 2 на 3 и с 3 на 4, если его когда-нибудь сделают.

При работе с csv кровь сохраняет pandas (который в этом вопросе вполне сохраняет обратную совместимость), если конечно нет драматической надобности оставаться в пределах стандартной библиотеки.

phoen ★★
()

Если для себя – что больше нравится. Тебе же не надо думать над работоспособностью где-то там еще. Пиши хоть на чем.

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

Ну и как это отменяет тот факт, что для быстрого написания скриптов есть инструменты,

И этот инструмент и есть sh-like. Именно для быстрого написания скриптов.

даже новички не засыпают лор однотипными темами про пробелы?

Про пробелы, кто их задаёт и прочий синтаксис было всё только что сказано, но как обычно нихрена не распарсили.

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

Знаю про pandas и тоже его использую. Но не всегда он нужен.

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

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

Это не так происходит. То что сегодня обыденность, завтра становится устаревшим из-за более нового софта и главное модулей/библиотек, некоторые из которых могут сильно измениться или даже выйти из употребления

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

если где-то в данных

Они там «могут встретиться» только в значениях переменных. В константах нет никакого «могут» – оно там либо уже есть либо никогда не будет.

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

Я xonsh использую как кроссплатформенный шелл для юниксов/винды для скриптов. В основном как замена batch-файлам, конечно. Хороший инструмент для подхвата шелл-скриптов, когда они усложняются настолько, что начинают местами требовать нормальный ЯП. Большинство плюшек шелла (вызов команды, цепочки команд, конвееры, окружение) на месте + это полноценный Python.

Но он очень сырой и забагованный (вплоть до того, что иногда портит состояние терминала). Синтаксис похож на шелловский, но только издалека. Захват вывода, получение кода возврата предыдущей команды не сразу будут очевидны. Использовать с осторожностью, в общем.

E ★★★
()

Конечно Python.

Когда-нибудь в нашем измерении наступит тот славный день, когда в Linux-дистрибутивах не останется ни одного скрипта на Bash-лапше.

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

Для JSON есть jq, для CSV и прочего text/plain есть (g)awk, но это на любителя. Большая часть доп. утилит уже встречается в большинстве систем или легко добавляется.

Конечно есть. Но на Питоне с этим все работать намного удобней.

В остальном «Для системных скриптов, скриптов бекапа и прочего» и «обернуть имеджмэджик, рсинк или еще что то...» (С), bash подходит намного лучше Питона.

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

Конечно Python.
Когда-нибудь в нашем измерении наступит тот славный день, когда в Linux-дистрибутивах не останется ни одного скрипта на Bash-лапше.

Поставь себе Питон в качестве командной оболочки, посмотрим на долго ли тебя хватит.

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

Если что-то простое - то bash. Иначе - python.

Плюсую.

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

Поставь себе Питон в качестве командной оболочки, посмотрим на долго ли тебя хватит.

Это не одно и тоже со скриптами.

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

В остальном «Для системных скриптов, скриптов бекапа и прочего» и «обернуть имеджмэджик, рсинк или еще что то...» (С), bash подходит намного лучше Питона.

согласен

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

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

Обратная совместимость в каких-то азовых вещах в питоне не ломается. Даже при переходе с 2 на 3 простая скриптота чинилась за пять минут. Это не то в чём питон проигрывает.

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

Поставь себе Питон в качестве командной оболочки, посмотрим на долго ли тебя хватит.

Это не одно и тоже со скриптами.

Ошибаешься.
Когда ты вбиваешь команды в шелле, в какой-то момент ты захочешь положить их в файл, и сделать этот файл исполняемым. И не учить отдельный язык для этого.

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

Когда ты вбиваешь команды в шелле, в какой-то момент ты захочешь положить их в файл

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

Баш, как шелл, а для скриптов, что лучше подходит под конкретную задачу.

anonymous
()

python-скрипт, в итоге создающий shell-скрипт

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

Используй мозг.

Лучший совет ящетаю.

yvv ★★☆
()

надо ruby, или, на худой конец, scheme.
только так победим!

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

тс ограничен памятью

необходимостью читать/править написанное. Чем меньше там мусора – тем проще.

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

Незачёт, ждём аргументов в пользу го

«В пользу него»?

Скриптуха как правило запускают внешние программы, в баше это seamless в отличие от питона. Особенно если пайпы нужны.

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

Ты, видать, плохо понимаешь что такое shell script.

Да думай и делай, что хочешь, может тебе действительно удобней вместо bash в консоли использовать python. Мало ли чудаков.

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