วิธีหลบหนี“!” และ“ &” ใน varibles สภาพแวดล้อมของนักเทียบท่า


16

ฉันมีที่จอดนักเทียบท่าฉันต้องการเรียกใช้และส่งมอบรหัสผ่านบางส่วน อีกอันหนึ่งมีเครื่องหมายอัศเจรีย์!และอีกอันหนึ่งมีเครื่องหมาย&และ ดังนั้นฉันต้องการเรียกใช้นี้:

docker run -i -t --rm \
-e "LDAP_FILTER=(&(objectCategory=person)(objectClass=user)" \
-e "LDAP_PASS=Secret!Password" \
user-prefix/container-name

ที่ใช้งานไม่ได้ &ถูกแทนที่ด้วย{LDAP_FILTER}และการ!ตัดทอน ฉันค่อนข้างแน่ใจว่าฉันต้องหลบหนีสิ่งเหล่านี้ แต่\!และ\&ก็ไม่ได้ผล


2
คุณได้ลองด้วยคำพูดเดียว? เนื่องจากคุณไม่มีตัวแปรใด ๆ ที่จะสอดแทรกคุณสามารถใช้เครื่องหมายคำพูดเดี่ยวที่นี่
Rich Homolka

1
ยิงคนตาบอด: ถ้า-eพารามิเตอร์ได้รับการดำเนินการโดยอินสแตนซ์เปลือกอื่นคุณอาจจะต้องหลบหนีครั้งที่สองจึงพยายามและ\\\& \\\!
mpy

@mpy \\\ เคล็ดลับสำหรับฉันมันเป็นสิ่งที่ดีที่สุด!
Simon Schnell

คำตอบ:


17

ฉันพบวิธีแก้ปัญหา:

  • การใช้เครื่องหมายคำพูดเดี่ยวแทนที่จะเป็นเครื่องหมายคำพูดคู่
  • หลบหนีจากเครื่องหมายและ&ไปที่\&
  • ไม่หนีเครื่องหมายอัศเจรีย์ !

ดังนั้นงานนี้:

docker run -i -t --rm \
-e 'LDAP_FILTER=(\&(objectCategory=person)(objectClass=user)' \
-e 'LDAP_PASS=Secret!Password' \
user-prefix/container-name
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.