Rumah > pembangunan bahagian belakang > Golang > Mengapa My Go `exec.Command('mv', '*')` Gagal dengan 'status keluar 1'?

Mengapa My Go `exec.Command('mv', '*')` Gagal dengan 'status keluar 1'?

DDD
Lepaskan: 2024-12-16 04:12:57
asal
534 orang telah melayarinya

Why Does My Go `exec.Command(

Go: Ralat "Gagal Melaksanakan Perintah" Apabila Menggunakan Aksara Wildcard

Apabila cuba melaksanakan perintah "mv" menggunakan pakej exec Go , mesej ralat yang menyatakan "status keluar 1" mungkin berlaku. Isu ini timbul apabila menggunakan kad bebas, seperti "*", dalam arahan.

Masalahnya terletak pada cara shell mentafsir arahan. Apabila kad bebas dimasukkan pada cangkerang, ia dikembangkan menjadi senarai nama fail yang sepadan. Walau bagaimanapun, apabila menggunakan pakej exec, kad bebas tidak dikembangkan dan perintah itu dilaksanakan dengan kad bebas itu sendiri sebagai hujah.

Untuk menyelesaikan isu ini, dua pendekatan boleh diambil:

  1. Gunakan laluan fail.Glob: Kembangkan kad bebas secara manual ke dalam senarai nama fail menggunakan fungsi laluan fail.Glob dan pas kepingan yang terhasil sebagai hujah kepada pakej exec.
  2. Gunakan Shell: Gunakan keupayaan pengembangan kad bebas shell dengan memanggilnya menggunakan exec.Command dengan "/bin/sh" sebagai binari dan "-c" sebagai hujah. Cangkang kemudian akan mengembangkan kad bebas sebelum menghantar arahan kepada boleh laku "mv".

Atas ialah kandungan terperinci Mengapa My Go `exec.Command('mv', '*')` Gagal dengan 'status keluar 1'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan