Добавить новую панель задач (панель )на второй монитор в Linux Mint 18.1 (Serena)

Чтобы увидеть, имеет ли значение xargs, запустите командные строки, которые он запускает. Вот несколько способов точно увидеть, что он запускает, не рискуя изменить то, что он запускает:

  • Напишите сценарий с именем phpво временном каталоге и поместите его в начало $PATH. В этом скрипте запишите аргументы (и при необходимости запустите настоящий phpпосле ).
  • Запустите всю командную строку с помощью механизма ведения журнала, такого как strace.

Вы обнаружите, что команда похожа на

php -l./bootstrap/app.php./bootstrap/autoload.php./bootstrap/cache/services.php …

Следующим шагом будет изучение того, что делает эта команда.

Я не знаком с php, но я предполагаю, что он обрабатывает только первое имя файла как имя сценария PHP, а в режиме lint он просто игнорирует все последующие аргументы. Таким образом, вам нужно запустить php -lодин раз для каждого скрипта, всего 12147 раз, вместо использования группового поведения xargs.

Самый простой способ сделать это

find. -name \*.php -exec php -l {} \;

, но эта команда всегда будет возвращать 0, даже если некоторые вызовы phpвозвращают ненулевой статус. Хотя find в 21 веке в основном не нуждается в xargs, преимущество xargs заключается в том, что он возвращает ненулевой статус, если любой вызов команды возвращает ненулевой статус. Поэтому запустите xargs, но скажите ему обрабатывать только один файл за раз с опцией -n.

find. -name \*.php -print0 | xargs -0 -n 1 php -l
-2
10.06.2020, 12:49
0 ответов

Теги

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