php vs bash для CLI-скриптов?

Я никогда не использовал PHP с CLI, но я видел, что скрипты выполняются с php-кодом.

Мне было интересно, почему мы должны использовать bash, когда php настолько популярен и может работать в CLI.

каковы плюсы и минусы с каждым из них?

Должен ли я использовать php для всех сценариев CLI в будущем?

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

 # удалить папку с мусором
 rm -rf oldTrashFolder

 # создать архив файлов, содержащих слово «localhost»
 tar cf backup.tar $ (grep -rlw localhost ~ / my-source-code)

 # сделать копию базы данных mysql
 {echo "создать базу данных NEWDATABASE;";  mysqldump OLDDABABASE;  } |  mysql NEWDATABASE

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

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

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

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

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

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

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

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

Рассмотрим: как вы устанавливаете PHP? Букет скриптов bash и make-файл, не так ли? Или ваш менеджер пакетов ОС, который в наши дни, вероятно, является Python, но также используется как скрипт bash.

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

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

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

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

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

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