task — Выполнить по команде со страницы php с вводом командной строки

Я хочу выполнить приведенную ниже команду из PHP shell_script в среде Linux.

shell_exec('at 12:39 <<< "mkdir newfolder"');

Я пытался во всех методах PHP, чтобы выполнить этот скрипт, но он не работает.
В терминале, когда я бегу at 12:39 <<< "mkdir newfolder" он выполняется, и задача является расписанием. Но когда я пытаюсь запустить тот же сценарий в php с помощью shell_exec, он не работает.

Вы можете понять проблемы, когда вы печатаете at 12:39 он покажет вам, как поместить ввод и нажмите Ctrl + d, чтобы завершить выполнение. чтобы сделать это в одной строке здесь я использую <<<

Кто-нибудь может подсказать, как можно выполнить этот скрипт из PHP?

0

Решение

shell_exec по умолчанию использует систему оболочки dash: чтобы убедиться, что php -r 'echo shell_exec("echo $0");' и он выведет ‘sh’, а Dash не имеет <<< оператор перенаправления.

Вместо этого вы можете принудительно использовать Bash и сделать что-то вроде:

shell_exec('/bin/bash -c \'at 12:39 <<< "mkdir newfolder"\'');

Надеюсь, это поможет.

2

Другие решения

Других решений пока нет …