Запуск скрипта bash в PHP приводит к синтаксической ошибке

4

Я могу использовать следующий bash script для запуска терминалов с раздельными выводами одновременно:

for i in 0 1 2 3; do urxvt -name Terminal$i&; done

Но если я попытаюсь запустить этот bash script с PHP скрипт, если сбой произошел с ошибкой:

sh: -c: line 0: syntax error near unexpected token `;'
sh: -c: line 0: `for i in 0 1 2 3; do urxvt -name Terminal$i&; done'

PHP скрипт:

<?php
system('for i in 0 1 2 3; do urxvt -name Terminal$i&; done');
?>

Это тоже не удается:

<?php
exec('for i in 0 1 2 3; do urxvt -name Terminal$i&; done');
?>

Без '&' ошибок нет, но я хочу начать все в фоновом режиме. Выйдя из '&' приводит к ошибке недопустимого аргумента urxvt.

Любые идеи?

  • 0
    Я видел странные проблемы с системой вплоть до использования одинарных или двойных кавычек. Попробуйте вместо этого использовать shell exec. ca3.php.net/manual/en/function.shell-exec.php
Теги:

1 ответ

4
Лучший ответ

Удалите ;, & - это завершение команды.

Введите man bash в свою оболочку и посмотрите "Списки" в разделе "SHELL GRAMMAR".

  • 0
    это сделка! Большое спасибо!
  • 0
    Я рад, что помог;) Примите ответ, если это решило вашу проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню