Saya memiliki skrip PHP yang melewati banyak kerumitan dan, pada akhirnya, menghasilkan perintah untuk dijalankan oleh pengguna. Saat ini, ia mencetak perintah dan kemudian berhenti. Pengguna harus menyalin perintah dan menempelnya untuk menjalankannya. Karena perintah PHP dijalankan pada baris perintah, akan lebih mudah bagi pengguna jika skrip PHP dapat menempatkan perintah pada baris perintah. Pengguna cukup menekan enter. (Ya - itu adalah persyaratan bahwa manusia menjalankan perintah atau saya hanya akan menjalankan perintah dari dalam skrip.)
Saya telah mencoba menggunakan xclip untuk menyalin perintah ke clipboard. Itu hang. Saya telah menggunakan exec dan sistem untuk menjalankannya. Perintah yang akan dijalankan adalah dalam $ command dan saya menggunakan:
exec("echo \"$command\" | xclip");
Dengan kedua exec dan sistem, itu hang sampai saya ctrl-C dan tidak ada di clipboard.
MEMPERBARUI Saya menemukan bahwa jika saya pipe xclip ke / dev / null pada perintah, itu tidak hang. Saya kemudian dapat menambahkannya ke clipboard pengguna dan dia dapat menjalankannya menggunakan ctrl + shift + v
exec("echo \"$command\" | xclip -sel clip -i > /dev/null");
Saya sudah mencoba membungkus semuanya dalam skrip-skrip rumit pada baris perintah, keluar dari baris keluaran terakhir, dan mencoba menempelkannya ke baris perintah. Saya bisa mendapatkannya untuk mencetak perintah, tetapi tidak pada baris perintah. Itu selalu mencetak perintah dan kemudian baris perintah muncul di bawahnya.
Saya menggunakan BASH untuk baris perintah. Jadi, solusi apa pun harus bekerja di bash shell - dengan asumsi ada solusi
sumber
Jawaban:
Tidak persis menekan enter, tetapi tidak jauh lebih sulit - perintah
Akan menambahkan baris perintah yang diberikan ke riwayat bash. Anda kemudian dapat menggunakan [panah atas] [enter] untuk mengambil dan menjalankan perintah yang diinjeksi.
(Saya tidak yakin apakah Anda bisa mengeksekusi ini dari PHP secara langsung, atau jika Anda perlu membungkus skrip PHP menjadi skrip bash, tetapi ini harus bisa dilakukan)
sumber