Menghapuskan Nilai Sampah daripada Output SSH Menggunakan Paramiko
Apabila menggunakan perpustakaan Paramiko Python untuk SSH ke dalam mesin jauh dan mendapatkan output baris arahan, anda mungkin menghadapi aksara "sampah" yang tidak dijangka dalam respons, seperti [2Jx1b[1;1H dan u. Ini disebabkan oleh penggunaan kod melarikan diri ANSI, yang bertujuan untuk meningkatkan paparan output dalam terminal interaktif.
Menggunakan Kaedah Pelaksanaan yang Betul
SSHClient Paramiko .invoke_shell secara automatik meminta terminal pseudo, yang boleh mengakibatkan kemasukan kod melarikan diri ini. Untuk pelaksanaan arahan automatik, adalah lebih baik untuk menggunakan SSHClient.exec_command, yang tidak memperuntukkan terminal pseudo secara lalai.
Penyelesaian untuk Sesi Interaktif
Sebagai penyelesaian untuk sesi interaktif, anda boleh mengalih keluar urutan pelarian ANSI menggunakan perpustakaan Python. Walau bagaimanapun, ini adalah penggodaman dan mungkin tidak menyelesaikan sepenuhnya isu lain yang berkaitan dengan menggunakan terminal interaktif.
Penciptaan Manual Saluran Shell
Jika anda memerlukan penggunaan shell saluran kerana keperluan pelayan tertentu, anda boleh membuat saluran secara manual tanpa menggunakan invoke_shell. Ini membolehkan anda mengelakkan peruntukan terminal pseudo.
Pengekodan Unikod
Akhir sekali, awalan u dalam output menunjukkan bahawa rentetan itu berada dalam pengekodan Unikod. Ini penting untuk mengendalikan aksara dalam rentetan dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Nilai Sampah daripada Output SSH Menggunakan Paramiko?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!