เครื่องมือสำหรับนักพัฒนา · Docker เรียกใช้ตัวแปลงการเขียน Docker
เครื่องหมายคำพูด ตัวแบ่งบรรทัด และ $VARS: แยกวิเคราะห์คำสั่งเรียกใช้นักเทียบท่าอย่างถูกต้อง
· มันทำงานอย่างไร
docker บรรทัดคำสั่ง การอ้างอิง
คำสั่ง docker run คืออินพุตของเชลล์ก่อนที่ Docker จะมองเห็น โพสต์นี้จะอธิบายว่าการอ้างอิงและความต่อเนื่องของบรรทัดเปลี่ยนแปลงโทเค็นอย่างไร และเหตุใดไม่มีตัวแปลงใดที่สามารถขยายตัวแปรเชลล์ของคุณได้
ตัวแปลงได้รับ $HOME ตามตัวอักษร — คำสั่งทำงานในเทอร์มินัลของคุณเนื่องจากเชลล์จะขยายก่อนที่นักเทียบท่าจะทำงาน
ตัวแปลงได้รับ $HOME ตามตัวอักษร — คำสั่งทำงานในเทอร์มินัลของคุณเนื่องจากเชลล์จะขยายก่อนที่นักเทียบท่าจะทำงาน หลักฐาน: $HOME ยังคงเป็นข้อความเนื่องจากโทเค็นไม่ดำเนินการขยาย สร้างโทเค็นเชลล์ด้วยตัวอักษรแบบใช้แล้วทิ้ง จับคู่แหล่งที่มาแต่ละรายการกับโทเค็นที่ยกมาและความต่อเนื่อง สำรองการขยายและการแยกวิเคราะห์ Windows สำหรับการตรวจสอบปลายทาง
เหตุการณ์การเสนอราคายังเผยให้เห็นว่า ขอบเขตเหตุการณ์การเสนอราคาที่แยกจากกันคือการเสนอราคาเดี่ยวเป็นกระบวนการอ้างอิงตามตัวอักษรและกระบวนการที่จัดทำเอกสารเครื่องหมายคำพูดคู่ หลักฐาน: เครื่องหมายคำพูดเดี่ยวเป็นกระบวนการอ้างอิงตามตัวอักษรและเครื่องหมายคำพูดคู่ที่บันทึกไว้ ข้อจำกัดการทำโทเค็นของเชลล์นี้เป็นจุดหยุด ตรวจสอบโทเค็นที่เสนอราคาและความต่อเนื่องโดยไม่มีพฤติกรรมการผลิต จากนั้นบันทึกการตรวจสอบโฮสต์สำหรับการขยายและการแยกวิเคราะห์ Windows
โทเค็นเซอร์นี้มีลักษณะคล้ายกับกฎคำเชลล์ POSIX ที่เลือก แต่ไม่มีการดำเนินการขยายตัวแปรหรือคำสั่ง
Shell มาก่อน Docker ที่สอง — โทเค็นที่ Docker ได้รับเป็นผลมาจากการเสนอราคา การแยก และการขยายของเชลล์ หลักฐาน: กฎคำที่มีลักษณะคล้าย POSIX ที่เลือกถูกนำไปใช้โดยไม่กลายเป็นเชลล์ โทเค็นเซอร์นี้มีลักษณะคล้ายกับกฎคำเชลล์ POSIX ที่เลือก แต่ไม่มีการดำเนินการขยายตัวแปรหรือคำสั่ง ติดตามโทเค็นโทเค็นไลเซชันของเชลล์เป็นโทเค็นที่ยกมาและความต่อเนื่อง แยกค่าที่เรียงลำดับออกจากฟิลด์ค่าสุดท้าย การขยายและการแยกวิเคราะห์ Windows อยู่นอกคอลเล็กชัน
ขอบเขตกลไกการเสนอราคาที่เกี่ยวข้องคือ สำหรับส่วนการเสนอราคานี้ ให้เก็บต้นฉบับสำหรับคำสั่งส่วนการเสนอราคานี้ และคำเตือนสำหรับส่วนการเสนอราคานี้ข้างไฟล์ตัวเลือกนี้ หลักฐาน: พื้นที่เก็บข้อมูลไม่ได้ให้รันไทม์หรือข้อพิสูจน์ทางประวัติศาสตร์ที่กว้างขึ้น ใช้ข้อเท็จจริงของเชลล์โทเค็นไนเซชันนี้เพื่อทำนายสมาชิกหนึ่งรายหรือสเกลาร์ในโทเค็นที่ยกมาและความต่อเนื่อง ตรวจสอบคำเตือนก่อนที่จะตัดสินใจอะไรเกี่ยวกับการขยายและการแยกวิเคราะห์ Windows
การต่อเนื่องของแบ็กสแลช - ขึ้นบรรทัดใหม่ - เหตุใดแบ็กสแลชต่อท้ายจึงเป็นคุณสมบัติของเชลล์และช่องว่างที่หลงทางหลังจากที่มันหยุดคำสั่ง
การต่อเนื่องของแบ็กสแลช-ขึ้นบรรทัดใหม่ - เหตุใดแบ็กสแลชต่อท้ายจึงเป็นคุณลักษณะของเชลล์และช่องว่างที่หลงทางหลังจากที่คำสั่งหยุด หลักฐาน: backslash-newline หายไปในขณะที่แบ็กสแลชเดี่ยวของเทอร์มินัลล้มเหลว ตัดสินการซีเรียลไลซ์โทเค็นของเชลล์จากโมเดล การอ้างอิงในโทเค็นที่ยกมาและความต่อเนื่องจะปกป้องประเภท แต่ไม่มีหลักฐานการดำเนินการสำหรับการขยายและการแยกวิเคราะห์ Windows
การสังเกตการทำให้เป็นอนุกรมของเครื่องหมายคำพูดที่สองคือ ขอบเขตเอาต์พุตของเครื่องหมายคำพูดที่แยกจากกันคือ ตัวอย่างวิกิสามารถทำให้เป็นมาตรฐานได้ และตรวจสอบโทเค็นตามตัวอักษร หลักฐาน: ตัวอย่างวิกิสามารถทำให้เป็นมาตรฐานและตรวจสอบโทเค็นตามตัวอักษรได้ เอาต์พุตโทเค็นไลเซชันของเชลล์นี้จะแยกการตั้งค่าออกจากบริบทที่ไม่พร้อมใช้งาน ตรวจสอบโทเค็นที่ยกมาและความต่อเนื่องได้ และตรวจสอบการขยายและการแยกวิเคราะห์ Windows อย่างเป็นอิสระ
เครื่องหมายคำพูดเดี่ยว เครื่องหมายคำพูดคู่ และช่องว่างในค่า — -e MSG='สวัสดีชาวโลก' กับ -e MSG=สวัสดีชาวโลก
เครื่องหมายคำพูดเดี่ยว เครื่องหมายคำพูดคู่ และช่องว่างในค่า — -e MSG='hello world' กับ -e MSG=hello world หยุดที่ข้อยกเว้นโทเค็นของเชลล์แทนที่จะเดา การเพิ่มโทเค็นที่ยกมาและความต่อเนื่องใดๆ จำเป็นต้องมีเหตุผลเฉพาะในการปรับใช้ซึ่งเชื่อมโยงกับการขยายและการแยกวิเคราะห์ Windows
ข้อจำกัดข้อยกเว้นในการเสนอราคาอีกประการหนึ่งคือ ขอบเขตข้อยกเว้นในการเสนอราคาที่แยกจากกันคืออาร์เรย์ของตัวเลือก Docker เป็นไปตามโทเค็นและไม่มีกฎของ Windows หลักฐาน: ตัวเลือก Docker เป็นไปตามโทเค็นและไม่มีกฎของ Windows เก็บคำสั่งเชลล์โทเค็นไนเซชันดั้งเดิมไว้ข้างๆ คำเตือน การเปรียบเทียบแสดงให้เห็นว่าโทเค็นที่ยกมาและความต่อเนื่องมีอะไรบ้าง และการตัดสินใจแยกวิเคราะห์การขยายและ Windows ใดที่ยังคงเป็นแบบแมนนวล
นิพจน์ดอลลาร์ ไวยากรณ์เชลล์ย่อย และเครื่องหมายตัวหนอนยังคงเป็นตัวอักษร เนื่องจากตัวแปลงไม่ใช่เชลล์
ตัวแปรและเชลล์ย่อย — $PWD, $(id -u) และ ~ ถูกขยายโดยเชลล์ของคุณ ดังนั้นตัวแปลงจึงมองเห็นพวกมันตามตัวอักษร หลักฐาน: สัญกรณ์ย่อย backticks ตัวแปรดอลลาร์และตัวหนอนจะไม่ถูกประเมิน; นิพจน์ดอลลาร์ ไวยากรณ์เชลล์ย่อย และเครื่องหมายตัวหนอนยังคงเป็นตัวอักษร เนื่องจากตัวแปลงไม่ใช่เชลล์ สร้างตัวอย่างเชลล์โทเค็นไนเซชันจากชื่อสังเคราะห์ ทำให้ทุกโทเค็นที่เสนอราคาและรายการต่อเนื่องสามารถตรวจสอบย้อนกลับได้ โดยไม่เปิดเผยการขยายการผลิตและรายละเอียดการแยกวิเคราะห์ Windows
ตัวอย่างตัวอย่างการอ้างอิงเดียวกันแสดงให้เห็นว่าสำหรับส่วนการอ้างอิงนี้ เก็บต้นฉบับสำหรับคำสั่งส่วนการอ้างอิงนี้และคำเตือนสำหรับส่วนการอ้างอิงนี้ข้างไฟล์ตัวเลือกนี้ ข้อเท็จจริงของโทเค็นเชลล์ที่จับคู่ควรมองเห็นได้ในโทเค็นที่ยกมาและความต่อเนื่อง บันทึกบรรทัดนั้นและหลีกเลี่ยงสมมติฐานเกี่ยวกับการขยายและการแยกวิเคราะห์ Windows
ตัวอย่างการทำงาน: การล้างคำสั่งที่วางในวิกิ — การทำให้ความต่อเนื่องและการอ้างอิงเป็นมาตรฐานก่อนการแปลง จากนั้นตรวจสอบ YAML
ตัวอย่างการทำงาน: การล้างคำสั่งที่วางในวิกิ — การทำให้ความต่อเนื่องและการอ้างอิงเป็นมาตรฐานก่อนการแปลง จากนั้นตรวจสอบ YAML แปลผลลัพธ์ของเชลล์โทเค็นไนเซชันเป็นโทเค็นที่อ้างอิงที่สังเกตได้หนึ่งโทเค็นและความแตกต่างต่อเนื่อง นักเทียบท่าเป็นเจ้าของส่วนขยายในภายหลังและคำตัดสินในการแยกวิเคราะห์ของ Windows
การใช้งานผลการเสนอราคายังแสดงขอบเขตเอฟเฟกต์การเสนอราคาที่แยกจากกันคือ $HOME ยังคงเป็นข้อความเนื่องจากโทเค็นไม่ดำเนินการขยาย ความรับผิดชอบในการแบ่งโทเค็นเชลล์: การแปลงจะเขียนโทเค็นที่ยกมาและความต่อเนื่อง พื้นที่เก็บข้อมูลจะลบข้อมูลลับออก และผู้ปฏิบัติงานจะตรวจสอบการขยายและการแยกวิเคราะห์ Windows
การอ้างอิงเชลล์ของ Windows และการขยาย POSIX ที่สมบูรณ์นั้นอยู่นอกตัวแยกวิเคราะห์นี้
สิ่งนี้ไม่ครอบคลุม - ตัวเลือกของนักเทียบท่ารันในการแยกวิเคราะห์นิสัยแปลก ๆ เช่น = เทียบกับช่องว่าง และความแตกต่างของการอ้างอิงเชลล์ของ Windows หลักฐาน: ตัวเลือกนักเทียบท่าเป็นไปตามโทเค็นและไม่มีกฎของ Windows การอ้างอิงเชลล์ของ Windows และการขยาย POSIX ที่สมบูรณ์นั้นอยู่นอกตัวแยกวิเคราะห์นี้ จำกัดขอบเขตการโทเค็นเชลล์ให้อยู่ที่โทเค็นที่เสนอราคาและสาขาต่อเนื่องที่แสดงไว้ที่นี่ แบบฟอร์มใกล้เคียงและค่าเริ่มต้นไม่สามารถตอบคำถามการขยายและการแยกวิเคราะห์ Windows
ขีดจำกัดขอบเขตการอ้างอิงอีกหนึ่งรายการตามมาจากการเก็บคำสั่งดั้งเดิมสำหรับส่วนการอ้างอิงนี้และคำเตือนข้างไฟล์ตัวเลือกนี้ ถือว่าขอบเขตการทำโทเค็นของเชลล์นี้เป็นข้อยกเว้น ต้องการโทเค็นที่ยกมาอย่างถูกต้องและความต่อเนื่องมากกว่าการคาดเดาเกี่ยวกับการขยายและการแยกวิเคราะห์ Windows
ประเด็นสำคัญ: มอบสิ่งที่นักเทียบท่าจะเห็นให้กับตัวแปลง และแทนที่ตัวแปรเชลล์ด้วยค่าตัวอักษรหรือเขียนการแก้ไข ${VAR}
ประเด็นสำคัญ: มอบสิ่งที่นักเทียบท่าจะเห็นให้กับตัวแปลง และแทนที่ตัวแปรเชลล์ด้วยค่าตัวอักษรหรือการแก้ไขการเขียน ${VAR} หลักฐาน: ข้อมูลที่เชื่อถือได้หมายถึงการจัดหาคำตามตัวอักษรสำหรับการแยกวิเคราะห์ ตรวจสอบโทเค็นเชลล์เป็นตัวเลือกแหล่งที่มา ฟิลด์โมเดล โทเค็นที่ยกมา และบรรทัดต่อเนื่องและคำเตือน ลบความลับก่อนที่จะตรวจสอบการขยายและการแยกวิเคราะห์ Windows
ในที่สุด แหล่งที่มา Takeaway ของการเสนอราคายืนยัน ขอบเขตการตัดสินใจของการเสนอราคาที่แยกจากกันคือแบ็กสแลช-ขึ้นบรรทัดใหม่หายไปในขณะที่แบ็กสแลชเดี่ยวของเทอร์มินัลล้มเหลว ปิดโทเค็นเชลล์แบบหวุดหวิด: โทเค็นที่ยกมาและความต่อเนื่องเป็นตัวเลือก ไม่รับประกันการขยายและการแยกวิเคราะห์ Windows และการเทียบเท่าเชลล์