PHP по сравнению с Bash для сценариев CLI? [закрытый]

7
задан Eddie C. 8 October 2018 в 14:09
поделиться

7 ответов

По-прежнему гораздо проще выполнять многие общие задачи на bash. Рассмотрим написание PHP-эквивалентов для следующих однострочных фраз bash:

# remove a folder full of rubbish
rm -rf oldTrashFolder

# create an archive of files containing the word 'localhost'
tar cf backup.tar $(grep -rlw localhost ~/my-source-code)

# make a copy of a mysql database
{ echo "create database NEWDATABASE; "; mysqldump OLDDATABASE; } | mysql NEWDATABASE
7
ответ дан 6 December 2019 в 08:42
поделиться

Полагаю, главное: bash всегда есть на современной unix-системе (его предшественники действительно всегда есть, даже на древних unixen). Bash использует каждую маленькую утилиту в системе, которая может включать PHP, Python, Ruby, AWK, Perl (последние два особенно).

Задумайтесь: как установить PHP? Кучей скриптов bash и makefile, верно? Или менеджер пакетов вашей ОС, который в наши дни, вероятно, Python, но раньше тоже был bash-скриптом.

Вы не можете администрировать unix, не зная хорошо shell, не можете писать или использовать make-файлы. Возможно, это не всегда правильный ответ, но для работы со сценариями я всегда стараюсь сначала выяснить, можно ли это сделать на bash.

2
ответ дан 6 December 2019 в 08:42
поделиться

PHP лучше только в веб-каталоге. Bash лучше подходит для обработки ввода командной строки и общей семантики оболочки, IMO.

3
ответ дан 6 December 2019 в 08:42
поделиться

Я думаю, что python лучше, чем php для CLI.

Если вы никогда не использовали PHP, я рекомендую Python, потому что PHP изначально был разработан для веб-разработки для создания динамических веб-страниц, а для Python он более щедр и делает упор на читаемость кода.

3
ответ дан 6 December 2019 в 08:42
поделиться

Для создания сценариев общих задач я бы посоветовал полностью использовать Bash.

Bash, вероятно, является наиболее распространенной оболочкой, и ваш сценарий может работать в большинстве систем * nix. Напротив, PHP не всегда будет доступен. Конечно, если вы не собираетесь использовать эти сценарии в незнакомой системе, вам подойдет и то, и другое.

Тем не менее, большинство стандартных команд оболочки легче писать на bash, чем на php. В php вы открываете подпроцессы, выполняете команды оболочки через некоторые функции оболочки или что-то еще, а в bash вы просто записываете свой сеанс bash в файл и делаете его исполняемым. Возьмем, к примеру, листинг каталога: в bash вы просто указываете ls , а в php вы, вероятно, используете scandir , что не очень весело, как кажется. Также я бы предположил, что у scandir намного меньше вариантов сортировки. grep -Ri что-нибудь. кто-нибудь?

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

2
ответ дан 6 December 2019 в 08:42
поделиться

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

4
ответ дан 6 December 2019 в 08:42
поделиться

Предпочтения в основном.

Языки более высокого уровня (например, php) имеют лучшие структуры данных, легко доступные (среди прочего). Однако, довольно легко собрать рабочий скрипт на bash.

Так что, на самом деле, все зависит от вас.

1
ответ дан 6 December 2019 в 08:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: