ในคำถามของคุณคุณหมายความว่าคุณไม่ได้อ้างบรรทัดเลย เห็นได้ชัดว่าผิดเพราะช่องว่างจะแยกการกำหนดอาร์กิวเมนต์ "PS1 = [\ u @ \ h" ออกจากคำสั่ง "\ W] \ $" โปรดตระหนักว่าตัวละครทุกตัวมีความสำคัญ
อย่างไรก็ตามสิ่งที่คุณอาจทำคือใช้เครื่องหมายคำพูดคู่ (") แทนที่จะเป็นคำเดียว (') พวกมันจะทำงานแตกต่างกันมากเมื่อมันมาถึงเชลล์ที่ตีความสิ่งที่คุณพิมพ์ด้วยอัญประกาศคู่มันจะพยายามทำสิ่งที่ฉลาดด้วย ลำดับของแบ็กสแลช / ตัวละครบางตัวสำหรับการมอบหมายนี้เนื่องจากไม่มีอะไรพิเศษเกี่ยวกับ \ u, \ h, และ \ W พวกมันถูกปล่อยทิ้งไว้โดยไม่มีใครแตะต้องเครื่องหมายวงเล็บเหลี่ยมอาจมีความหมายพิเศษในที่ต่าง ๆ แต่ไม่ใช่ในกรณีนี้ ดังนั้นพวกมันจึงถูกทิ้งไว้ในสถานที่ แต่เนื่องจาก a $
มีความหมายหลากหลายทุกอย่างพิเศษ\$
ลำดับจึงถูกตีความว่าเป็น "เพิกเฉยต่อความพิเศษของเครื่องหมายดอลลาร์และปล่อยให้มันอยู่ที่นั่น" และลำดับนั้นจะถูกแทนที่ด้วย เครื่องหมายดอลลาร์เดียวที่ไม่มีการแยกวิเคราะห์ผลลัพธ์ของสิ่งเหล่านั้นถูกกำหนดให้PS1
และเนื่องจากมีเครื่องหมายดอลลาร์ตามตัวอักษรไม่ใช่\$
ลำดับมายากลเมื่อเชลล์สร้างพรอมต์จริงคุณเพียงแค่ได้รับเครื่องหมายดอลลาร์และไม่ใช่ตัวละครที่ขึ้นกับผู้ใช้ การแยกวิเคราะห์จริงซับซ้อนกว่าเล็กน้อย แต่นั่นเป็นส่วนสำคัญของมันสำหรับตัวอย่างนี้
สิ่งที่คุณพิมพ์: PS1="[\u@\h \W]\$ "
สิ่งที่เชลล์มอบหมาย: PS1 <- "[\u@\h \W]$ "
สิ่งที่คุณต้องการ: PS1 <- "[\u@\h \W]\$ "
สิ่งที่คุณควรพิมพ์:PS1='[\u@\h \W]\$ '
คุณควรทำอย่างไรต่อไป: อ่านสิ่งที่ต้องการในบทช่วยสอนนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการอ้างอิงเชลล์
PS1=[\u@\h \W]\$
-bash: W]$: command not found
ผลตอบแทน