Score:0

เมื่อใช้ ?! ใน perl regex นั้น bash ตีความว่าเป็นการค้นหาผ่านประวัติคำสั่ง

ธง in
Cas

ปัญหาง่ายๆ แต่แก้ไม่ได้

ฉันมี perl regex ต่อไปนี้:

เสียงสะท้อน ...| grep -P "(?i)(v(ersion)?)\s?(?!0)\d(\.|,)\d{1,}"

ค่านี้ควรจะตรงกับทุกสตริงที่อธิบายเวอร์ชันของบางสิ่ง (เช่น V2,0 หรือ รุ่น 1.2). แต่มันไม่ตรงกับรุ่นที่ขึ้นต้นด้วย วี0.... อย่างไรก็ตาม เมื่อฉันดำเนินการนี้ ฉันได้รับข้อผิดพลาด -bash: !0: ไม่พบเหตุการณ์ เพราะ !<string> ใช้เพื่อค้นหาประวัติคำสั่งและเรียกใช้การเข้าชมล่าสุด

โดยทั่วไปสิ่งนี้จะแบ่ง perl regex สำหรับฉัน ฉันจะหลีกเลี่ยงไม่ให้เชลล์ตีความว่าเป็นทางลัดได้อย่างไร

hr flag
ค่อนข้างเกี่ยวข้อง: [bash: ข้อผิดพลาดในการส่งออกคำสั่งที่ bash: !st: ไม่พบเหตุการณ์](https://askubuntu.com/questions/1130809/bash-error-in-export-command-that-bash-st-event -ไม่พบ)
Score:1
ธง es

ใช้เครื่องหมายคำพูดเดี่ยว ไม่ใช่เครื่องหมายคำพูดคู่ เพื่อป้องกัน regexp ของคุณจากเชลล์

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา