Saya mencoba menjalankan daftar server dan menjalankan perintah berikut:
itaig@itaig-lt:~$ ssh root@$srvname "sed -i 's/VNCSERVERARGS[6]="-geometry 1920x1080"/VNCSERVERARGS[6]="-geometry 1152x864"/g' /etc/sysconfig/vncservers"
Saya sudah mencoba seperti itu juga:
itaig@itaig-lt:~$ ssh root@$srvname "sed -i 's/VNCSERVERARGS[6]=\"-geometry 1920x1080\"/VNCSERVERARGS[6]=\"-geometry 1152x864\"/g' /etc/sysconfig/vncservers"
itaig@itaig-lt:~$
Keduanya mencoba memberi saya baris prompt baru dan ketika memeriksa file pada mesin remote tidak ada yang berubah. Apakah itu mungkin untuk menjalankan perintah seperti itu?
Jawaban:
Saya tidak berpikir ssh berperan dalam masalah ini. Anda harus ssh ke atas ke sistem dan mencoba menjalankan perintah sed Anda secara langsung untuk membuatnya bekerja pertama kemudian bungkus dalam ssh.
Saya pikir pola kecocokan Anda salah, Anda perlu melarikan diri dari
[]
karakter dan mungkin hal-hal lain juga.sumber
[]
menyelesaikan masalah saya, terima kasih.Dalam upaya pertama Anda, saya telah menyoroti bagian-bagian yang merupakan string yang dikutip ganda di shell lokal. Tidak ada penawaran ganda yang pernah diberikan ke shell jarak jauh, apalagi sed.
Dalam upaya kedua Anda, ini adalah perintah shell jarak jauh:
Anda dapat mengutip shell dengan benar, tapi itu
[6]
mungkin bukan yang Anda maksudkan: ituVNCSERVERARGS6=…
hanya cocok . Jika Anda ingin mencocokkan tanda kurung secara harfiah, Anda memerlukan garis miring terbalik sebelum braket pembuka.Dalam shell jarak jauh, garis miring terbalik berada dalam string tunggal yang dikutip dan dengan demikian ditafsirkan secara harfiah. Di shell lokal, garis miring terbalik berada dalam string yang dikutip ganda; secara umum mereka harus digandakan, meskipun
\[
dalam string yang dikutip ganda ditafsirkan sebagai\[
toh.Ingat bahwa ssh memanggil perintah shell di sisi jarak jauh, jadi Anda perlu dua tingkat kutipan: satu untuk shell lokal dan satu untuk shell jauh. Biasanya lebih mudah untuk menempatkan tanda kutip tunggal di sekitar perintah jarak jauh dan mengatur untuk menulis perintah itu tanpa tanda kutip tunggal.
Atau, pasang file jarak jauh dengan sshfs dan kemudian bekerja padanya tanpa harus khawatir tentang menjadi jauh.
sumber