Escaper Argumen Shell
Kutip string apa pun dengan aman untuk POSIX sh/Bash/Zsh (tanda kutip tunggal), ANSI-C Bash $'…', atau PowerShell – atau urai kata shell yang dikutip kembali ke nilainya.
19 karakter · 19 byte (UTF-8)
0 karakter · 0 byte (UTF-8)
Berjalan sepenuhnya di browser Anda. Data Anda tidak pernah diunggah.
Apa itu Shell Escape?
Mengubah teks apa pun menjadi satu argumen shell yang diteruskan shell tanpa perubahan – termasuk tanda kutip, $, backtick, spasi, dan newline. Alat ini mendukung shell POSIX, quoting ANSI-C Bash/Zsh, dan PowerShell, serta bisa mengurai kata yang dikutip kembali.
Cara menggunakan Shell Escape
- Pilih Escape atau Unescape.
- Pilih Jenis shell: POSIX sh/Bash/Zsh, ANSI-C Bash/Zsh, atau PowerShell.
- Opsional, aktifkan Setiap baris adalah argumen terpisah atau Selalu tambahkan tanda kutip.
- Tempel nilai ke Masukan lalu salin argumen yang sudah dikutip dari Keluaran.
Contoh
It's $HOME
'It'\''s $HOME'
Kapan menggunakan Shell Escape
Gunakan saat membuat perintah yang berisi nama file, kata sandi, atau input pengguna – di skrip, perintah SSH, konfigurasi CI, atau dokumentasi. cmd.exe Windows tidak didukung karena tidak memiliki quoting yang aman untuk semua input. Di dalam program, utamakan meneruskan array argumen (mis. execFile, subprocess.run([...])) daripada menyusun string shell.
Cara kerja Shell Escape
Mode POSIX membungkus teks dengan tanda kutip tunggal, di mana tidak ada karakter yang istimewa, dan menulis setiap ' sebagai '\'' (tutup kutip, kutip ter-escape, buka lagi) – pendekatan yang sama dengan shlex.quote di Python. Kata sederhana yang hanya berisi A–Z a–z 0–9 _ @ % + = : , . / - dibiarkan tanpa kutip kecuali Anda meminta kutip. Mode ANSI-C menghasilkan $'…' dengan escape \n, \t, \', dan \xHH, yang membuat karakter kontrol terlihat. Mode PowerShell memakai tanda kutip tunggal dan menggandakan setiap tanda kutip tunggal (termasuk ‘ ’ tipografis). Mode unescape mengurai kata seperti shell (tanda kutip, backslash, $'…') tanpa melakukan ekspansi apa pun.
Kasus Penggunaan Umum
- Meneruskan nama file berisi spasi atau tanda kutip ke sebuah perintah
- Menyematkan payload JSON di perintah
curl - Mengutip argumen untuk
ssh host "command" - Memahami apa yang sebenarnya diteruskan oleh baris perintah dengan kutip yang rumit
Catatan Keamanan
Quoting yang benar mencegah command injection hanya jika nilai yang dikutip dipakai sebagai satu argumen; quoting tidak membuat perintah yang tidak aman menjadi aman.
Pertanyaan Umum
Mengapa tidak memakai tanda kutip ganda saja?
Di dalam tanda kutip ganda, shell tetap mengekspansi $VAR, backtick, dan \. Tanda kutip tunggal menonaktifkan semua ekspansi, itulah sebabnya aman untuk teks apa pun.
Apa arti '\''?
Ini mengakhiri bagian bertanda kutip tunggal, menambahkan tanda kutip literal yang di-escape, lalu memulai bagian bertanda kutip tunggal baru. Shell menggabungkan potongan-potongan itu menjadi satu argumen.
Apakah cmd.exe Windows didukung?
Tidak. cmd.exe tidak punya quoting yang andal melindungi karakter seperti % dan ^ di semua konteks. Gunakan mode PowerShell atau hindari shell.