У меня есть PHP-скрипт, который проходит через много сложностей и, в конце концов, выдает команду для запуска. Прямо сейчас, это печатает команду и затем выходит. Пользователь должен скопировать команду и вставить ее для запуска. Поскольку команда PHP выполняется в командной строке, пользователю было бы легче, если бы скрипт PHP мог разместить команду в командной строке. Пользователь может просто нажать Enter. (Да - это требование, чтобы человек выполнял команду, или я просто выполнил бы команду из сценария.)

Я попытался с помощью xclip скопировать команду в буфер обмена. Виснет Я использовал exec и system для его запуска. Команда для запуска находится в $ command, и я использовал:

exec("echo \"$command\" | xclip");

Как с exec, так и с системой, он зависает, пока я не нажму ctrl-C, и в буфере обмена ничего нет.

ОБНОВЛЕНИЕ Я обнаружил, что если я отправляю xclip в /dev /null в команде, он не зависает. Затем я могу добавить его в буфер обмена пользователя, и он / она может запустить его, используя Ctrl + Shift + V

exec("echo \"$command\" | xclip -sel clip -i > /dev/null");

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

Я использую BASH для командной строки. Таким образом, любое решение должно работать в оболочке bash - при условии, что решение существует.

1 ответ1

0

Не совсем нажав Enter, но не намного сложнее - команда

history -s "command to put in history"

Добавит данную командную строку в историю bash. Затем вы можете просто использовать [стрелка вверх] [ввод], чтобы получить и запустить введенную команду.

(Я не уверен, что вы могли бы выполнить это из PHP напрямую или вам нужно было бы обернуть скрипт PHP в скрипт bash, но это должно быть выполнимо)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .