Dalam pertanyaan Anda, Anda menyiratkan bahwa Anda sama sekali tidak mengutip kalimat itu; itu jelas salah, karena dengan begitu ruang akan memisahkan tugas argumen "PS1 = [\ u @ \ h" dari perintah "\ W] \ $". Harap sadari bahwa setiap karakter adalah penting.
Ngomong-ngomong, apa yang mungkin Anda lakukan adalah menggunakan tanda kutip ganda (") daripada tanda kutip tunggal ('). Mereka berperilaku sangat berbeda ketika datang ke shell menafsirkan apa yang Anda ketikkan. Dengan tanda kutip ganda, itu akan mencoba melakukan hal-hal pintar dengan urutan backslash / some-character. Untuk tugas ini, karena tidak ada yang istimewa tentang \ u, \ h, dan \ W, mereka tidak tersentuh; tanda kurung dapat memiliki arti khusus di berbagai tempat, tetapi tidak dalam kasus ini, jadi mereka juga ditinggalkan di tempat, tetapi karena a $
memiliki beragam makna, semuanya istimewa, \$
urutannya ditafsirkan sebagai "abaikan kekhasan tanda dolar, dan biarkan saja di sana", dan urutan itu diganti dengan tanda dolar tunggal no-selanjutnya diurai. Hasil dari semua itu ditugaskan untukPS1
, dan karena ada tanda dolar literal, dan bukan \$
urutan ajaib ketika shell membangun prompt aktual, Anda hanya mendapatkan tanda dolar, dan bukan karakter yang bergantung pada pengguna yang efektif. Penguraian sebenarnya sedikit lebih rumit, tetapi itulah intinya untuk contoh khusus ini.
Apa yang Anda ketikkan: PS1="[\u@\h \W]\$ "
Apa yang ditetapkan oleh shell: PS1 <- "[\u@\h \W]$ "
Apa yang Anda inginkan: PS1 <- "[\u@\h \W]\$ "
Apa yang harus Anda ketik:PS1='[\u@\h \W]\$ '
Apa yang harus Anda lakukan selanjutnya: Baca sesuatu seperti tutorial ini untuk mempelajari lebih lanjut tentang penawaran shell.
PS1=[\u@\h \W]\$
kembali-bash: W]$: command not found
.