Eu tenho um script PHP que passa por muita complicação e, no final, produz um comando para o usuário rodar. Agora, imprime o comando e depois sai. O usuário tem que copiar o comando e colá-lo para executá-lo. Como o comando PHP está sendo executado na linha de comando, seria mais fácil para o usuário se o script PHP conseguisse colocar o comando na linha de comando. O usuário pode simplesmente pressionar enter. (Sim - é um requisito que um humano execute o comando ou eu apenas executei o comando de dentro do script.)
Eu tentei usar o xclip para copiar o comando para a área de transferência. Isso trava. Eu usei exec e sistema para executá-lo. O comando a ser executado está no comando $ e eu usei:
exec("echo \"$command\" | xclip");
Com exec e system, ele trava até eu ctrl-C e não há nada na área de transferência.
UPDATE Descobri que, se can pipe xclip para / dev / null no comando, ele não trava. Eu posso então adicioná-lo à área de transferência do usuário e ele pode executá-lo usando ctrl + shift + v
exec("echo \"$command\" | xclip -sel clip -i > /dev/null");
Eu tentei envolver a coisa toda em scripts complicados na linha de comando, diminuindo a última linha de saída e tentando colá-la na linha de comando. Eu posso obtê-lo para imprimir o comando, mas não na linha de comando. Ele sempre imprime o comando e, em seguida, a linha de comando aparece abaixo dele.
Estou usando o BASH para a linha de comando. Portanto, qualquer solução deve funcionar no shell bash - supondo que exista uma solução.