ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

mksh - ออนไลน์ในคลาวด์

เรียกใช้ mksh ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง mksh ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


มช, sh — MirBSD คอร์นเชลล์

เรื่องย่อ


มช [-+abCefhiklmnprUuvXx] [-T [!]TTY | -] [-+โอ ตัวเลือก] [-c เชือก | -s | ไฟล์
[อาร์กิวเมนต์ ...]]
ชื่อในตัว [อาร์กิวเมนต์ ...]

DESCRIPTION


มช เป็นล่ามคำสั่งสำหรับการใช้ทั้งแบบโต้ตอบและเชลล์สคริปต์ มันคือ
ภาษาคำสั่งเป็น superset ของภาษาเชลล์ sh(C) และส่วนใหญ่เข้ากันได้กับ
คอร์นเชลล์เดิม. ในบางครั้ง หน้าคู่มือนี้อาจให้คำแนะนำในการเขียนสคริปต์ ในขณะที่มัน
บางครั้งใช้เชลล์สคริปต์แบบพกพาหรือมาตรฐานต่างๆ มาพิจารณาด้วย
ข้อมูลเป็นอันดับแรกและสำคัญที่สุดที่นำเสนอด้วย มช ในใจและควรถือเอาเช่นนั้น

ฉัน an Android ผู้ใช้ so คืออะไร mksh?
มช เป็นล่าม UNIX เชลล์ / คำสั่งคล้ายกับ COMMAND.COM or CMD.EXEซึ่งมี
รวมอยู่ในโครงการโอเพ่นซอร์ส Android มาระยะหนึ่งแล้ว โดยพื้นฐานแล้วมันคือโปรแกรม
ที่ทำงานในเทอร์มินัล (หน้าต่างคอนโซล) รับอินพุตของผู้ใช้และรันคำสั่งหรือสคริปต์
ซึ่งโปรแกรมอื่นสามารถขอให้ทำได้เช่นกัน แม้แต่ในพื้นหลัง สิทธิพิเศษใดๆ
ป๊อปอัปที่คุณอาจพบจึงไม่ใช่ มช ปัญหาแต่คำถามจากคนอื่น
โปรแกรมที่ใช้มัน

การภาวนา
บิวอินส่วนใหญ่สามารถเรียกได้โดยตรง ตัวอย่างเช่น หากลิงค์ชี้จากชื่อไปยัง
เปลือก; ไม่สมเหตุสมผลทั้งหมด ได้รับการทดสอบหรือทำงานเลย

ตัวเลือกมีดังนี้:

-c เชือก มช จะรันคำสั่งที่มีอยู่ใน เชือก.

-i เปลือกแบบโต้ตอบ เชลล์ที่อ่านคำสั่งจากอินพุตมาตรฐานคือ
“โต้ตอบ” หากใช้ตัวเลือกนี้หรือหากทั้งอินพุตมาตรฐานและข้อผิดพลาดมาตรฐาน
ติดอยู่กับ a TTY(4). เชลล์แบบโต้ตอบเปิดใช้งานการควบคุมงาน ละเว้น
สัญญาณ SIGINT, SIGQUIT และ SIGTERM และพิมพ์แจ้งก่อนอ่านอินพุต
(ดูพารามิเตอร์ PS1 และ PS2) นอกจากนี้ยังประมวลผลพารามิเตอร์ ENV หรือ
มคชร ไฟล์ (ดูด้านล่าง) สำหรับเชลล์ที่ไม่โต้ตอบ ติดตาม ตัวเลือกเปิดอยู่
โดยค่าเริ่มต้น (ดูที่ ชุด คำสั่งด้านล่าง)

-l เปลือกเข้าสู่ระบบ หากชื่อฐานที่เชลล์ถูกเรียกด้วย (เช่น argv[0]) ขึ้นต้นด้วย
'-' หรือถ้าใช้ตัวเลือกนี้ เชลล์จะถือว่าเป็นเชลล์สำหรับล็อกอิน ดู
การเริ่มต้น ไฟล์ ด้านล่าง

-p เปลือกพิเศษ เชลล์เป็น "สิทธิพิเศษ" หาก ID ผู้ใช้จริงหรือ ID กลุ่มไม่
ไม่ตรงกับ ID ผู้ใช้หรือ ID กลุ่มที่มีประสิทธิภาพ (ดู เข้าใจ(2) และ เก็ทกิด(พ.ศ. 2)).
การล้างตัวเลือกที่มีสิทธิพิเศษทำให้เชลล์ตั้งค่า ID ผู้ใช้ที่มีประสิทธิภาพ
(ID กลุ่ม) ไปยัง ID ผู้ใช้จริง (ID กลุ่ม) ดูความหมายเพิ่มเติมที่ การเริ่มต้น
ไฟล์. หากเชลล์ได้รับสิทธิพิเศษและไม่ได้ตั้งค่าแฟล็กนี้ไว้อย่างชัดเจน
ตัวเลือก "สิทธิพิเศษ" จะถูกล้างโดยอัตโนมัติหลังจากประมวลผลไฟล์เริ่มต้น

-r เชลล์จำกัด. เชลล์ถูก “จำกัด” หากใช้ตัวเลือกนี้ ต่อไปนี้
ข้อจำกัดจะมีผลหลังจากเชลล์ประมวลผลโปรไฟล์ใดๆ และ ENV
ไฟล์:

· พื้นที่ cd (และ ชดีร์) คำสั่งถูกปิดใช้งาน
· พารามิเตอร์ SHELL, ENV และ PATH ไม่สามารถเปลี่ยนแปลงได้
· ไม่สามารถระบุชื่อคำสั่งด้วยเส้นทางแบบสัมบูรณ์หรือแบบสัมพัทธ์
· พื้นที่ -p ตัวเลือกของคำสั่งในตัว คำสั่ง ไม่สามารถใช้งานได้
· ไม่สามารถใช้การเปลี่ยนเส้นทางที่สร้างไฟล์ได้ (เช่น '>', '>|', '>>', '<>')

-s เชลล์อ่านคำสั่งจากอินพุตมาตรฐาน อาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกทั้งหมดคือ
พารามิเตอร์ตำแหน่ง

-T ชื่อ วางไข่ มช บน TTY(4) อุปกรณ์ที่ให้มา เส้นทาง ชื่อ, /dev/ttyCname และ
/dev/ttyname จะพยายามตามลำดับ เว้นแต่ ชื่อ ขึ้นต้นด้วยเครื่องหมายอัศเจรีย์
('!') สิ่งนี้ทำในเชลล์ย่อยและส่งคืนทันที ถ้า ชื่อ เป็นเส้นประ
('-') ให้ถอดออกจากการควบคุมเทอร์มินัล (daemonise) แทน

นอกเหนือจากข้างต้น ตัวเลือกต่างๆ ที่อธิบายไว้ใน ชุด สามารถใช้คำสั่งในตัวได้
บนบรรทัดคำสั่ง: ทั้ง [-+abCefhkmnuvXx] และ [-+โอ ตัวเลือก] ใช้ได้กับอักษรตัวเดียว
หรือตัวเลือกแบบยาวตามลำดับ

ถ้าทั้ง -c หรือ -s มีการระบุตัวเลือก อาร์กิวเมนต์แรกที่ไม่ใช่ตัวเลือกระบุ
ชื่อของไฟล์ที่เชลล์อ่านคำสั่ง หากไม่มีอาร์กิวเมนต์ที่ไม่ใช่อ็อพชัน
เชลล์อ่านคำสั่งจากอินพุตมาตรฐาน ชื่อของเปลือก (เช่นเนื้อหาของ
$0) ถูกกำหนดดังนี้: ถ้า -c ใช้ตัวเลือกและมีอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือก
มันถูกใช้เป็นชื่อ; หากกำลังอ่านคำสั่งจากไฟล์ ไฟล์นั้นจะถูกใช้เป็น
ชื่อ; มิฉะนั้น ชื่อฐานที่เชลล์ถูกเรียกด้วย (เช่น argv[0]) จะถูกใช้

สถานะการออกของเชลล์คือ 127 หากไฟล์คำสั่งที่ระบุในบรรทัดคำสั่งสามารถ
ไม่ถูกเปิด หรือไม่ใช่ศูนย์ หากเกิดข้อผิดพลาดทางไวยากรณ์ที่ร้ายแรงเกิดขึ้นระหว่างการดำเนินการของa
สคริปต์ ในกรณีที่ไม่มีข้อผิดพลาดร้ายแรง สถานะการออกจะเป็นของคำสั่งสุดท้าย
ดำเนินการหรือศูนย์หากไม่มีการดำเนินการคำสั่ง

การเริ่มต้น ไฟล์
สำหรับตำแหน่งที่แท้จริงของไฟล์เหล่านี้ โปรดดูที่ ไฟล์. เชลล์ล็อกอินจะประมวลผลระบบ
โปรไฟล์ก่อน เชลล์ที่มีสิทธิพิเศษจะประมวลผลโปรไฟล์ suid การเข้าสู่ระบบที่ไม่มีสิทธิพิเศษ
เชลล์ประมวลผลโปรไฟล์ผู้ใช้ต่อไป เชลล์แบบโต้ตอบที่ไม่มีสิทธิพิเศษจะตรวจสอบค่า
ของพารามิเตอร์ ENV หลังจากส่งไปยังพารามิเตอร์ คำสั่ง เลขคณิต และตัวหนอน ('~')
การแทน; หากไม่ได้ตั้งค่าหรือว่างเปล่า โปรไฟล์ผู้ใช้ mkshrc จะถูกประมวลผล มิฉะนั้นถ้าเป็นไฟล์
ที่มีชื่อเป็นผลการทดแทนอยู่จะถูกประมวลผล; การไม่มีอยู่อย่างเงียบ ๆ
ละเลย เชลล์ที่มีสิทธิพิเศษจะลดสิทธิพิเศษหากไม่ใช่ -p ตัวเลือกที่ให้ไว้บน
บรรทัดคำสั่งหรือตั้งค่าระหว่างการดำเนินการของไฟล์เริ่มต้น

คำสั่ง วากยสัมพันธ์
เชลล์เริ่มแยกวิเคราะห์อินพุตโดยลบชุดค่าผสมแบ็กสแลช-ขึ้นบรรทัดใหม่ จากนั้น
ทำลายมันเป็น คำ. คำ (ซึ่งเป็นลำดับของอักขระ) คั่นด้วย unquoted
อักขระช่องว่าง (ช่องว่าง แท็บ และขึ้นบรรทัดใหม่) หรืออักขระเมตา ('<', '>', '|', ';', '(',
')', และ '&'). นอกเหนือจากการคั่นคำ ช่องว่างและแท็บจะถูกละเว้น ในขณะที่การขึ้นบรรทัดใหม่
มักจะคั่นคำสั่ง อักขระเมตาที่ใช้ในการสร้างสิ่งต่อไปนี้ สัญญาณ:
'<', '<&', '<<', '<<<', '>', '>&', '>>', '&>' ฯลฯ ใช้เพื่อระบุการเปลี่ยนเส้นทาง (ดู
อินพุต / เอาต์พุต การเปลี่ยนเส้นทาง ด้านล่าง); '|' ใช้เพื่อสร้างไปป์ไลน์ '|&' ใช้เพื่อสร้าง co-
กระบวนการ (ดู กระบวนการร่วม ด้านล่าง); ';' ใช้สำหรับแยกคำสั่ง; '&' ใช้ในการสร้าง
ท่อแบบอะซิงโครนัส '&&' และ '||' ใช้เพื่อระบุการดำเนินการตามเงื่อนไข ';;', ';&'
และ ';|' ใช้ใน กรณี งบ; '(( .. ))' ใช้ในนิพจน์เลขคณิต และ
สุดท้าย '( .. )' ใช้เพื่อสร้างเชลล์ย่อย

สามารถอ้างช่องว่างและอักขระเมตาแยกกันได้โดยใช้แบ็กสแลช ('\') หรือใน
กลุ่มโดยใช้เครื่องหมายคำพูดคู่ ('"') หรือเดี่ยว (“'”) โปรดทราบว่าอักขระต่อไปนี้คือ
เปลือกได้รับการปฏิบัติเป็นพิเศษด้วยและต้องยกมาหากจะเป็นตัวแทนของตัวเอง:
'\', '"', ''', '#', '$', '`', '~', '{', '}', '*', '?' และ '[' สามตัวแรกนี้
เป็นอักขระอ้างอิงที่กล่าวถึงข้างต้น (ดู quoting ด้านล่าง); '#' ถ้าใช้ที่
เริ่มต้นคำ, แนะนำความคิดเห็น – ทุกอย่างหลัง '#' ขึ้นเป็นที่ใกล้ที่สุด
ขึ้นบรรทัดใหม่จะถูกละเว้น '$' ใช้เพื่อแนะนำพารามิเตอร์ คำสั่ง และเลขคณิต
การทดแทน (ดู การแทน ด้านล่าง); '' ' แนะนำการแทนที่คำสั่งแบบเก่า
(ดู การแทน ด้านล่าง); '~' เริ่มการขยายไดเรกทอรี (ดู ตัวหนอน การขยายตัว ด้านล่าง); '{'
และ '}' คั่น csh(1)-รูปแบบการสลับ (ดู ทาบ การขยายตัว ด้านล่าง); และในที่สุดก็, '*',
'?' และ '[' ใช้ในการสร้างชื่อไฟล์ (ดู เนื้อไม่มีมัน ชื่อ รูปแบบ ด้านล่าง)

เมื่อคำและโทเค็นถูกแยกวิเคราะห์ เชลล์จะสร้างคำสั่ง ซึ่งมีพื้นฐานอยู่สองอย่าง
ประเภท: คำสั่งง่ายๆ, โดยทั่วไปโปรแกรมที่ดำเนินการ, และ คำสั่งผสมเช่นนี้
as for และ if คำสั่ง โครงสร้างการจัดกลุ่ม และคำจำกัดความของฟังก์ชัน

คำสั่งง่าย ๆ ประกอบด้วยการกำหนดพารามิเตอร์ร่วมกัน (ดู พารามิเตอร์
ด้านล่าง) การเปลี่ยนเส้นทางอินพุต/เอาต์พุต (ดู อินพุต / เอาต์พุต การเปลี่ยนเส้นทาง ด้านล่าง) และคำคำสั่ง;
ข้อจำกัดเพียงอย่างเดียวคือการกำหนดพารามิเตอร์มาก่อนคำคำสั่งใดๆ NS
คำคำสั่ง ถ้ามี ให้กำหนดคำสั่งที่จะดำเนินการและอาร์กิวเมนต์ของคำสั่งนั้น NS
คำสั่งอาจเป็นคำสั่งในตัวเชลล์ ฟังก์ชัน หรือคำสั่งภายนอก (เช่น คำสั่งที่แยกจากกัน
ไฟล์เรียกทำงานที่ตั้งโดยใช้พารามิเตอร์ PATH ดู คำสั่ง การปฏิบัติ ด้านล่าง)
โปรดทราบว่าโครงสร้างคำสั่งทั้งหมดมีสถานะออก: สำหรับคำสั่งภายนอก สิ่งนี้สัมพันธ์กัน
ไปยังสถานะที่ส่งคืนโดย รอ(2) (หากไม่พบคำสั่ง สถานะการออกคือ
127; หากไม่สามารถดำเนินการได้ สถานะการออกคือ 126); สถานะการออกของคำสั่งอื่น
โครงสร้าง (คำสั่งในตัว, ฟังก์ชั่น, คำสั่งผสม, ไปป์ไลน์, รายการ ฯลฯ ) ล้วน
กำหนดไว้อย่างดีและถูกอธิบายไว้ตรงที่โครงสร้างถูกอธิบายไว้ สถานะการออกของ a
คำสั่งที่ประกอบด้วยการกำหนดพารามิเตอร์เท่านั้นคือการแทนที่คำสั่งสุดท้าย
ดำเนินการระหว่างการกำหนดพารามิเตอร์หรือ 0 หากไม่มีการแทนที่คำสั่ง

คำสั่งสามารถเชื่อมโยงเข้าด้วยกันโดยใช้ '|' โทเค็นเพื่อสร้างท่อส่งซึ่ง
เอาต์พุตมาตรฐานของแต่ละคำสั่ง แต่สุดท้ายถูกไพพ์ (ดู ท่อ(2)) ไปยังอินพุตมาตรฐานของ
คำสั่งต่อไปนี้ สถานะการออกของไปป์ไลน์คือคำสั่งสุดท้าย เว้นแต่
ท่อล้มเหลว ตั้งค่าตัวเลือกแล้ว (ดูที่นั่น) คำสั่งทั้งหมดของไพพ์ไลน์ถูกดำเนินการแยกกัน
เปลือกย่อย; POSIX อนุญาต แต่แตกต่างจาก AT&T UNIX ทั้งสองรุ่น ครับที่นี่มี
ทั้งหมดยกเว้นคำสั่งสุดท้ายถูกดำเนินการในเชลล์ย่อย เห็น อ่าน builtin's description for
ความหมายและวิธีแก้ไข ไปป์ไลน์อาจมีเครื่องหมาย '!' นำหน้า คำสงวนซึ่ง
ทำให้สถานะทางออกของไปป์ไลน์ได้รับการเสริมอย่างมีเหตุผล: ถ้าสถานะเดิม
คือ 0 สถานะเสริมจะเป็น 1; ถ้าสถานะเดิมไม่ใช่ 0 จะถูกเติมเต็ม
สถานะจะเป็น 0

รายการ ของคำสั่งสามารถสร้างได้โดยแยกไพพ์ไลน์ด้วยโทเค็นใดๆ ต่อไปนี้:
'&&', '||', '&', '|&' และ ';' สองรายการแรกมีไว้สำหรับการดำเนินการตามเงื่อนไข: “cmd1 && cmd2"
ดำเนินการ cmd2 เฉพาะในกรณีที่สถานะการออกของ cmd1 เป็นศูนย์; '||' เป็นสิ่งที่ตรงกันข้าม - cmd2 is
ดำเนินการก็ต่อเมื่อสถานะการออกของ cmd1 ไม่เป็นศูนย์ '&&' และ '||' มีความสำคัญเท่าเทียมกัน
ซึ่งสูงกว่า '&', '|&' และ ';' ซึ่งมีลำดับความสำคัญเท่ากัน บันทึก
ว่า '&&' และ '||' โอเปอเรเตอร์คือ "ความสัมพันธ์ทางซ้าย" ตัวอย่างเช่น ทั้งสองสิ่งนี้
คำสั่งจะพิมพ์เฉพาะ "bar":

$ false && echo foo || แถบเสียงสะท้อน
$ จริง || echo foo && แถบเสียงสะท้อน

โทเค็น '&' ทำให้คำสั่งก่อนหน้าถูกดำเนินการแบบอะซิงโครนัส นั่นคือเปลือก
เริ่มคำสั่งแต่ไม่รอให้เสร็จสิ้น (เชลล์ติดตาม
สถานะของคำสั่งแบบอะซิงโครนัส ดู การสัมภาษณ์ ควบคุม ด้านล่าง). เมื่อคำสั่งแบบอะซิงโครนัสคือ
เริ่มต้นเมื่อปิดการควบคุมงาน (เช่น ในสคริปต์ส่วนใหญ่) คำสั่งจะเริ่มต้นด้วย
สัญญาณ SIGINT และ SIGQUIT ถูกละเว้นและมีการป้อนข้อมูลเปลี่ยนเส้นทางจาก / dev / null (อย่างไรก็ตาม,
การเปลี่ยนเส้นทางที่ระบุในคำสั่งแบบอะซิงโครนัสมีความสำคัญเหนือกว่า) ตัวดำเนินการ '|&'
เริ่มกระบวนการร่วมซึ่งเป็นกระบวนการแบบอะซิงโครนัสชนิดพิเศษ (ดู กระบวนการร่วม
ด้านล่าง). โปรดทราบว่าคำสั่งต้องเป็นไปตาม '&&' และ '||' ตัวดำเนินการในขณะที่ไม่จำเป็นต้อง
ทำตาม '&', '|&' หรือ ';' สถานะการออกของรายการคือคำสั่งสุดท้ายที่ดำเนินการ
ยกเว้นรายการอะซิงโครนัส ซึ่งสถานะการออกคือ 0

คำสั่งผสมถูกสร้างขึ้นโดยใช้คำสงวนต่อไปนี้ คำเหล่านี้เท่านั้น
รับรู้ถ้าไม่มีเครื่องหมายคำพูดและถ้าใช้เป็นคำแรกของคำสั่ง (เช่น
ไม่สามารถนำหน้าด้วยการกำหนดพารามิเตอร์หรือการเปลี่ยนเส้นทางได้):

case else ทำงานแล้ว ! (
ทำ esac ถ้าเวลา [[ ((
ทำ fi จนถึง {
elif สำหรับเลือกในขณะที่ }

ในคำอธิบายคำสั่งผสมต่อไปนี้ รายการคำสั่ง (แสดงเป็น รายการ) นั้นคือ
ตามด้วยคำสงวนต้องลงท้ายด้วยเครื่องหมายอัฒภาค ขึ้นบรรทัดใหม่ หรือ a (syntaxally
ถูกต้อง) คำสงวน ตัวอย่างเช่น สิ่งต่อไปนี้ใช้ได้ทั้งหมด:

$ { เสียงสะท้อน foo; แถบเสียงสะท้อน; }
$ { เสียงสะท้อน foo; แถบเสียงสะท้อน }
$ {{ เสียงสะท้อน foo; แถบเสียงสะท้อน; } }

สิ่งนี้ไม่ถูกต้อง:

$ { เสียงสะท้อน foo; แถบเสียงสะท้อน }

(รายการ)
ดำเนินงาน รายการ ในเปลือกย่อย ไม่มีทางโดยปริยายที่จะส่งผ่านการเปลี่ยนแปลงสภาพแวดล้อมจาก
เชลล์ย่อยกลับไปที่พาเรนต์

{ รายการ- -
โครงสร้างแบบผสม; รายการ ถูกดำเนินการ แต่ไม่ใช่ในเชลล์ย่อย โปรดทราบว่า '{' และ '}'
เป็นคำสงวน ไม่ใช่ meta-character

กรณี word ใน [[(] Belt hold [| Belt hold - รายการ terminator] ...เอสแซค
พื้นที่ กรณี คำสั่งพยายามจับคู่ word กับที่ระบุ Belt hold ; รายการ
เชื่อมโยงกับรูปแบบที่จับคู่สำเร็จครั้งแรกจะถูกดำเนินการ รูปแบบที่ใช้ใน
กรณี คำสั่งเหมือนกับที่ใช้สำหรับรูปแบบชื่อไฟล์ ยกเว้นว่า
ข้อจำกัดเกี่ยวกับ '.' และ '/' จะหายไป โปรดทราบว่าช่องว่างใด ๆ ที่ไม่มีเครื่องหมายคำพูดมาก่อน
และหลังจากลอกลายแล้ว ช่องว่างภายในรูปแบบจะต้องยกมา ทั้ง
คำและรูปแบบขึ้นอยู่กับพารามิเตอร์ คำสั่ง และการแทนที่เลขคณิต
เช่นเดียวกับการแทนที่ตัวหนอน

ด้วยเหตุผลทางประวัติศาสตร์ อาจใช้เครื่องมือจัดฟันแบบเปิดและแบบปิดแทน in และ ว่า C เช่น
กรณี $ฟู { *) เสียงสะท้อน บาร์ ;; }.

รายการ terminatorคือ:

';;' สิ้นสุดหลังจากรายการ

';&' เข้าสู่รายการถัดไป

';|' ประเมินทูเพิล-รายการรูปแบบที่เหลือ

สถานะการออกของ a กรณี คำสั่งคือของผู้ถูกประหารชีวิต รายการ; ถ้าไม่ รายการ is
ดำเนินการแล้ว สถานะการออกจะเป็นศูนย์

for ชื่อ [ใน word ...]; ทำ รายการ; เสร็จแล้ว
สำหรับแต่ละ word ในรายการคำที่ระบุพารามิเตอร์ ชื่อ ถูกกำหนดเป็นคำและ
รายการ ถูกดำเนินการ ถ้า in ไม่ได้ใช้เพื่อระบุรายการคำ, พารามิเตอร์ตำแหน่ง
($1, $2 เป็นต้น) มาใช้แทน ด้วยเหตุผลทางประวัติศาสตร์ การจัดฟันแบบเปิดและแบบปิดอาจจะ
ใช้แทน do และ ทำ เช่น for i; { เสียงสะท้อน $ฉัน; }. สถานะการออกของ a for
คำสั่งคือสถานะทางออกสุดท้ายของ รายการ; ถ้า รายการ ไม่เคยถูกดำเนินการ สถานะการออก
เป็นศูนย์

if รายการ; แล้วก็ รายการ; [เอลิฟ รายการ; แล้วก็ รายการ;] ... [อื่น รายการ;] ฟิค
หากสถานะการออกของครั้งแรก รายการ เป็นศูนย์วินาที รายการ ถูกประหารชีวิต; มิฉะนั้น,
รายการ following the elifหากมี ให้ดำเนินการด้วยผลที่คล้ายคลึงกัน ฉันตก
รายการตามหลัง if และ elifs ล้มเหลว (เช่น ออกโดยมีสถานะไม่เป็นศูนย์) the รายการ
following the อื่น ถูกดำเนินการ สถานะทางออกของ an if คำสั่งคือที่ไม่ใช่
เงื่อนไข รายการ ที่ดำเนินการ; ถ้าไม่มีเงื่อนไข รายการ ถูกดำเนินการ ทางออก
สถานะเป็นศูนย์

เลือก ชื่อ [ใน word ...]; ทำ รายการ; เสร็จแล้ว
พื้นที่ เลือก คำสั่งให้วิธีการอัตโนมัติในการนำเสนอผู้ใช้ด้วยเมนู
และเลือกจากมัน รายการที่แจกแจงของที่ระบุ word(s) พิมพ์บน
ข้อผิดพลาดมาตรฐาน ตามด้วยข้อความแจ้ง (PS3: ปกติ '#? ') ตัวเลขที่ตรงกับ
หนึ่งในคำที่แจกแจงแล้วอ่านจากอินพุตมาตรฐาน ชื่อ ถูกกำหนดให้เป็น
คำที่เลือก (หรือยกเลิกการตั้งค่าหากการเลือกไม่ถูกต้อง) REPLY ถูกตั้งค่าเป็นสิ่งที่อ่าน
(ช่องว่างนำหน้า/ต่อท้ายถูกถอดออก) และ รายการ ถูกดำเนินการ หากเป็นบรรทัดว่าง (เช่น
ป้อน IFS octets เป็นศูนย์หรือมากกว่า) เมนูจะถูกพิมพ์ซ้ำโดยไม่ต้องดำเนินการ รายการ.

เมื่อ รายการ เสร็จสิ้น รายการที่ระบุจะถูกพิมพ์หาก REPLY เป็น NULL พร้อมต์คือ
พิมพ์เป็นต้น. กระบวนการนี้จะดำเนินต่อไปจนกว่าจะมีการอ่านจุดสิ้นสุดของไฟล์ ซึ่งเป็นการขัดจังหวะ
ได้รับ หรือ a ทำลาย คำสั่งถูกดำเนินการภายในลูป ถ้า “ในคำพูด…” คือ
ละเว้น พารามิเตอร์ตำแหน่งจะถูกใช้ (เช่น $1, $2 เป็นต้น) สำหรับประวัติศาสตร์
สาเหตุอาจใช้เหล็กจัดฟันแบบเปิดปิดแทนได้ do และ ทำ เช่น เลือก i; {
เสียงสะท้อน $ฉัน; }. สถานะการออกของ a เลือก คำสั่งเป็นศูนย์ถ้า a ทำลาย คำสั่งคือ
ใช้เพื่อออกจากลูป อย่างอื่นที่ไม่ใช่ศูนย์

จนกระทั่ง รายการ; ทำ รายการ; เสร็จแล้ว
ทำงานเหมือน ในขณะที่เว้นแต่ร่างกายจะถูกประหารชีวิตในขณะที่สถานะการออกของ .เท่านั้น
คนแรก รายการ ไม่เป็นศูนย์

ในขณะที่ รายการ; ทำ รายการ; เสร็จแล้ว
A ในขณะที่ เป็นวงตรวจสอบล่วงหน้า ร่างกายของมันถูกประหารชีวิตบ่อยครั้งเท่ากับสถานะการออกของ
คนแรก รายการ เป็นศูนย์ สถานะการออกของ a ในขณะที่ คำสั่งคือสถานะทางออกสุดท้าย
ของ รายการ ในร่างกายของวง; หากร่างกายไม่ถูกประหารชีวิต สถานะการออกจะเป็น
ศูนย์.

ฟังก์ชัน ชื่อ { รายการ- -
กำหนดฟังก์ชัน ชื่อ (ดู ฟังก์ชั่น ด้านล่าง). โปรดทราบว่าระบุการเปลี่ยนเส้นทาง
หลังจากดำเนินการนิยามฟังก์ชันเมื่อใดก็ตามที่มีการใช้งานฟังก์ชัน ไม่ใช่เมื่อ
คำจำกัดความของฟังก์ชันถูกดำเนินการ

ชื่อ() คำสั่ง
ส่วนใหญ่เหมือนกับ ฟังก์ชัน (ดู ฟังก์ชั่น ด้านล่าง). ช่องว่าง (ช่องว่างหรือแท็บ) หลัง
ชื่อ ส่วนใหญ่จะถูกละเลย

ฟังก์ชัน ชื่อ() { รายการ- -
เหมือนกับ ชื่อ-ทุบตีไอเอสเอ็ม) NS ฟังก์ชัน คีย์เวิร์ดถูกละเว้น

เวลา [-p] [ท่อ]
พื้นที่ คำสั่ง การปฏิบัติ ส่วนอธิบาย เวลา คำสงวน

(( การแสดงออก ))
นิพจน์เลขคณิต การแสดงออก ได้รับการประเมิน; เทียบเท่ากับ “ให้นิพจน์” (ดู
คณิตศาสตร์ การแสดงออก และ ให้ คำสั่งด้านล่าง) ในโครงสร้างแบบผสม

[[ การแสดงออก ]]
คล้ายกับ ทดสอบ และ [ ... ] คำสั่ง (อธิบายในภายหลัง) โดยมีข้อความดังต่อไปนี้
ข้อยกเว้น:

· การแยกฟิลด์และการสร้างชื่อไฟล์ไม่ได้ดำเนินการกับอาร์กิวเมนต์

· พื้นที่ -a (และ) และ -o ตัวดำเนินการ (OR) จะถูกแทนที่ด้วย '&&' และ '||' ตามลำดับ

· ตัวดำเนินการ (เช่น '-f', '=', '!') ต้องไม่มีเครื่องหมายคำพูด

· พารามิเตอร์ คำสั่ง และการแทนที่เลขคณิตถูกดำเนินการตามนิพจน์คือ
การประเมินนิพจน์ที่ประเมินและขี้เกียจใช้สำหรับ '&&' และ '||' ผู้ประกอบการ
ซึ่งหมายความว่าในข้อความต่อไปนี้ $( จะได้รับการประเมินถ้าและเฉพาะถ้า
ไฟล์ foo มีอยู่และสามารถอ่านได้:

$ [[ -r foo && $(

· ตัวถูกดำเนินการที่สองของนิพจน์ '!=' และ '=' เป็นส่วนย่อยของรูปแบบ (เช่น
การเปรียบเทียบ [[ ฟูบาร์ = ฉ*ร ]] สำเร็จ) สิ่งนี้ได้ผลทางอ้อม:

$ bar=foobar; baz='f*r'
$ [[ $bar = $baz ]]; เสียงสะท้อน $?
$ [[ $bar = "$baz" ]]; เสียงสะท้อน $?

การเปรียบเทียบครั้งแรกอาจประสบความสำเร็จในขณะที่การเปรียบเทียบครั้งแรกอาจไม่สำเร็จอย่างน่าประหลาดใจ
ปัจจุบันนี้ใช้ไม่ได้กับอักขระเมตา extglob ทั้งหมด

quoting
การอ้างอิงใช้เพื่อป้องกันไม่ให้เชลล์ปฏิบัติต่ออักขระหรือคำโดยเฉพาะ มี
สามวิธีในการอ้างอิง ขั้นแรก '\' จะใส่เครื่องหมายคำพูดอักขระต่อไปนี้ เว้นแต่จะอยู่ที่
สิ้นสุดบรรทัด ซึ่งในกรณีนี้ทั้ง '\' และการขึ้นบรรทัดใหม่จะถูกถอดออก ประการที่สอง โสด
เครื่องหมายคำพูด (“'”) อ้างอิงทุกอย่างจนถึงเครื่องหมายคำพูดเดี่ยวถัดไป (ซึ่งอาจครอบคลุมบรรทัด) ประการที่สาม a
เครื่องหมายอัญประกาศคู่ ('"') ยกคำพูดของอักขระทั้งหมด ยกเว้น '$', '`' และ '\' จนถึงอักขระยกเว้นตัวถัดไป
อ้างคู่ '$' และ '`' ภายในเครื่องหมายคำพูดคู่มีความหมายตามปกติ (เช่น พารามิเตอร์
เลขคณิต หรือการแทนที่คำสั่ง) ยกเว้นไม่มีการแยกฟิลด์ในผลลัพธ์
ของการแทนที่แบบ double-quoted และรูปแบบเก่าของการแทนที่คำสั่งมี
เครื่องหมายแบ็กสแลชสำหรับเครื่องหมายอัญประกาศคู่เปิดใช้งาน หาก '\' อยู่ในสตริงที่มีเครื่องหมายอัญประกาศคู่คือ
ตามด้วย '\', '$', '`' หรือ '"' จะถูกแทนที่ด้วยอักขระตัวที่สอง ถ้าตามด้วย
โดยขึ้นบรรทัดใหม่ ทั้ง '\' และบรรทัดใหม่จะถูกถอดออก มิฉะนั้น ทั้ง '\' และ
อักขระต่อไปนี้ไม่เปลี่ยนแปลง

หากสตริงที่มีเครื่องหมายอัญประกาศเดี่ยวนำหน้าด้วย '$' ที่ไม่มีเครื่องหมายคำพูด ส่วนขยายแบ็กสแลชสไตล์ C (ดู
ด้านล่าง) ถูกนำไปใช้ (แม้แต่เครื่องหมายคำพูดเดียวภายในก็สามารถหลบหนีได้และไม่สิ้นสุด
สตริงแล้ว); ผลลัพธ์ที่ขยายจะถือว่าเป็นสตริงที่มีเครื่องหมายอัญประกาศเดี่ยวอื่นๆ ถ้า
สตริงที่มีเครื่องหมายอัญประกาศคู่นำหน้าด้วย '$' ที่ไม่มีเครื่องหมายคำพูด '$' จะถูกละเว้น

ทับขวา การขยายตัว
ในสถานที่ที่มีการขยายแบ็กสแลช C และ AT&T UNIX . บางอย่าง ครับ หรือ GNU ทุบตี สไตล์
มีการแปลการหลบหนี ซึ่งรวมถึง '\a', '\b', '\f', '\n', '\r', '\t', '\U##########',
'\u####' และ '\v' สำหรับ '\U##########' และ '\u####', “#” หมายถึงเลขฐานสิบหกของ thich
อาจมีไม่เกินสี่หรือแปด; Escapes เหล่านี้แปลโค้ดพอยท์ Unicode เป็น UTF-8
นอกจากนี้ '\E' และ '\e' ยังขยายไปยังอักขระหลีก

ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร พิมพ์ โหมดบิวด์อิน, '\"', '\'' และ '\?' ไม่รวมอย่างชัดเจน ลำดับฐานแปด
ต้องไม่มีเลขฐานแปดหลักสามหลัก “#” นำหน้าด้วยเลขศูนย์หลัก ('\0###');
ลำดับเลขฐานสิบหก '\x##' ถูกจำกัดให้ไม่มีเลขฐานสิบหกไม่เกินสองหลัก “#”; ทั้งสอง
ลำดับเลขฐานแปดและเลขฐานสิบหกแปลงเป็นอ็อกเทตดิบ '\ #' โดยที่ # ไม่ใช่สิ่งที่กล่าวมา
แปลเป็น \# (แบ็กสแลชจะถูกเก็บไว้)

การขยายแบ็กสแลชในโหมดสไตล์ C แตกต่างกันเล็กน้อย: ต้องมีลำดับฐานแปด '\###'
ไม่มีเลขศูนย์นำหน้าเลขฐานแปดหลักหนึ่งถึงสามหลัก “#” และให้ผล octets ดิบ
ลำดับเลขฐานสิบหก '\x#*' กินเลขฐานสิบหกอย่างตะกละตะกละ “#” ให้ได้มากที่สุดและ
ลงท้ายด้วยตัวเลขที่ไม่ใช่เลขฐานสิบหกตัวแรก สิ่งเหล่านี้แปลจุดโค้ด Unicode เป็น
UTF-8 ลำดับ '\c#' โดยที่ “#” คือออคเต็ตใดๆ แปลเป็น Ctrl-# (ซึ่งโดยพื้นฐานแล้ว
หมายถึง '\c?' กลายเป็น DEL ทุกสิ่งทุกอย่างจะเป็นระดับบิต ANDed ด้วย 0x1F) สุดท้าย '#' โดยที่
# ไม่มีสิ่งใดข้างต้น แปลเป็น # (มีการตัดแบ็กสแลช) แม้ว่าจะเป็น a
ขึ้นบรรทัดใหม่

นามแฝง
นามแฝงมีสองประเภท: นามแฝงคำสั่งปกติและนามแฝงที่ติดตาม นามแฝงคำสั่ง
ปกติจะใช้เป็นมือสั้นสำหรับคำสั่งยาวหรือมักใช้ เปลือกขยายตัว
นามแฝงคำสั่ง (เช่น แทนที่ชื่อนามแฝงสำหรับค่าของมัน) เมื่ออ่านคำแรก
ของคำสั่ง นามแฝงที่ขยายจะถูกประมวลผลใหม่เพื่อตรวจสอบนามแฝงเพิ่มเติม หากเป็นคำสั่ง
นามแฝงลงท้ายด้วยช่องว่างหรือแท็บ คำต่อไปนี้จะถูกตรวจสอบสำหรับการขยายนามแฝงด้วย NS
กระบวนการขยายนามแฝงจะหยุดเมื่อพบคำที่ไม่ใช่นามแฝง เมื่อคำที่ยกมา
พบหรือเมื่อพบคำนามแฝงที่กำลังขยายอยู่ นามแฝงคือ
โดยเฉพาะคุณลักษณะแบบโต้ตอบ: ในขณะที่ทำงานในสคริปต์และบน
บรรทัดคำสั่งในบางกรณี นามแฝงจะถูกขยายระหว่าง lexing ดังนั้นการใช้งานจะต้องอยู่ใน a
แผนผังคำสั่งแยกจากคำจำกัดความ มิฉะนั้นจะไม่พบนามแฝง
รายการคำสั่งที่เห็นได้ชัดเจน (คั่นด้วยเครื่องหมายอัฒภาค ในการแทนที่คำสั่งด้วยการขึ้นบรรทัดใหม่ด้วย)
อาจเป็นต้นแยกต้นเดียวกัน

นามแฝงของคำสั่งต่อไปนี้ถูกกำหนดโดยอัตโนมัติโดยเชลล์:

autoload='\typeset -fu'
ฟังก์ชั่น='\typeset -f'
hash='\builtin นามแฝง -t'
ประวัติ='\builtin fc -l'
integer='\typeset -i'
local='\typeset'
เข้าสู่ระบบ='\exec เข้าสู่ระบบ'
nameref='\typeset -n'
nohup='nohup'
r='\builtin fc -e -'
type='\builtin เหตุใด -v'

นามแฝงที่ติดตามช่วยให้เชลล์จำตำแหน่งที่พบคำสั่งเฉพาะได้ ครั้งแรก
เวลาที่เชลล์ค้นหาพาธสำหรับคำสั่งที่ทำเครื่องหมายเป็นนามแฝงที่ติดตาม มันจะช่วย
เส้นทางแบบเต็มของคำสั่ง ครั้งถัดไปที่รันคำสั่ง เชลล์จะตรวจสอบ
บันทึกเส้นทางเพื่อดูว่ายังคงถูกต้อง และถ้าใช่ หลีกเลี่ยงการค้นหาเส้นทางซ้ำ
นามแฝงที่ติดตามสามารถแสดงรายการและสร้างโดยใช้ นามแฝง -t. โปรดทราบว่าการเปลี่ยน PATH
พารามิเตอร์ล้างเส้นทางที่บันทึกไว้สำหรับนามแฝงที่ติดตามทั้งหมด ถ้า ติดตาม ตั้งค่าตัวเลือกแล้ว
(เช่น ชุด -o ติดตาม or ชุด -h) เชลล์ติดตามคำสั่งทั้งหมด ตัวเลือกนี้ถูกตั้งค่า
โดยอัตโนมัติสำหรับเชลล์ที่ไม่โต้ตอบ สำหรับเชลล์แบบโต้ตอบ เฉพาะสิ่งต่อไปนี้
คำสั่งจะถูกติดตามโดยอัตโนมัติ: แมว(1) cc(1) chmod(1) cp(1) ข้อมูล(1) ed(1)
emacs(1) grep(1) ls(1) ทำ(1) mv(1) pr(1) rm(1) ความกระหายน้ำ(1) sh(1) vi(1) และ ใคร(1)

การแทน
ขั้นตอนแรกที่เชลล์ใช้ในการดำเนินการคำสั่งง่าย ๆ คือทำการแทนที่บน
คำพูดของคำสั่ง การทดแทนมีสามประเภท: พารามิเตอร์ คำสั่ง และ
เลขคณิต การแทนที่พารามิเตอร์ ซึ่งจะอธิบายโดยละเอียดในหัวข้อถัดไป
อยู่ในรูปแบบ $ชื่อ หรือ ${...}; การแทนที่คำสั่งอยู่ในรูปแบบ $(คำสั่ง) หรือ
(เลิกใช้แล้ว) `คำสั่ง` หรือ (ดำเนินการในสภาพแวดล้อมปัจจุบัน) ${ คำสั่ง;} และสตริป
ขึ้นบรรทัดใหม่ต่อท้าย; และการแทนที่เลขคณิตอยู่ในรูปแบบ $((การแสดงออก)). การแยกวิเคราะห์
การแทนที่คำสั่งสภาพแวดล้อมปัจจุบันต้องมีช่องว่าง แท็บ หรือขึ้นบรรทัดใหม่หลังการเปิด
วงเล็บปีกกาและวงเล็บปีกกาปิดถือเป็นคีย์เวิร์ด (เช่น นำหน้าด้วยบรรทัดใหม่
หรืออัฒภาค) พวกเขาเรียกอีกอย่างว่า funsubs (การแทนที่ฟังก์ชัน) และทำตัวเหมือน
ทำหน้าที่ในสิ่งนั้น ในประเทศ และ กลับ งานและในสิ่งนั้น ทางออก ยุติพาเรนต์เชลล์; เปลือก
มีการแชร์ตัวเลือก

ตัวแปรอื่นของการแทนที่คือ valsubs (การแทนที่ค่า) ${|คำสั่ง;} ซึ่งก็คือ
ยังดำเนินการในสภาพแวดล้อมปัจจุบัน เช่น funsubs แต่แชร์ I/O กับพาเรนต์
แทน พวกเขาจะประเมินสิ่งที่ตัวแปร expression-local ว่างเปล่าในตอนแรก REPLY is
กำหนดให้อยู่ภายใน คำสั่งs.

หากการแทนที่ปรากฏนอกเครื่องหมายคำพูดคู่ ผลลัพธ์ของการแทนที่จะเป็น
โดยทั่วไปขึ้นอยู่กับคำหรือฟิลด์ที่แยกตามมูลค่าปัจจุบันของIFS
พารามิเตอร์. พารามิเตอร์ IFS ระบุรายการของออคเต็ตที่ใช้ในการแยกสตริง
เป็นคำหลายคำ; octets ใด ๆ จาก set space, tab และ newline ที่ปรากฏในIFS
octets เรียกว่า “IFS whitespace” ลำดับของออคเต็ตช่องว่าง IFS หนึ่งออคเต็ตขึ้นไป ใน
รวมกับศูนย์หรือหนึ่งออคเต็ตช่องว่างที่ไม่ใช่ IFS ให้คั่นฟิลด์ เป็นกรณีพิเศษ
ช่องว่าง IFS นำหน้าและต่อท้ายถูกตัดออก (เช่น ไม่มีช่องว่างนำหน้าหรือต่อท้าย is
สร้างโดยมัน); ช่องว่างที่ไม่ใช่ IFS นำหน้าหรือต่อท้ายจะสร้างฟิลด์ว่าง

ตัวอย่าง: หากตั้งค่า IFS เป็น “ :” และตั้งค่า VAR เป็น
“ NS : B::D” การแทนที่สำหรับ $VAR ส่งผลให้มีสี่ฟิลด์: 'A',
'B', '' (ช่องว่าง) และ 'D' โปรดทราบว่าหากตั้งค่าพารามิเตอร์ IFS เป็นค่าว่าง
สตริง ไม่มีการแยกฟิลด์ หากไม่ได้ตั้งค่า ค่าเริ่มต้นของช่องว่าง แท็บ และ
ใช้ขึ้นบรรทัดใหม่

นอกจากนี้ โปรดทราบว่าการแยกฟิลด์จะใช้เฉพาะกับผลลัพธ์ทันทีของ
การแทน. จากตัวอย่างที่แล้ว การแทนที่ของ $VAR:E ให้ผลลัพธ์เป็น
ฟิลด์: 'A', 'B', '' และ 'D:E' ไม่ใช่ 'A', 'B', '', 'D' และ 'E' ลักษณะการทำงานนี้คือ POSIX
สอดคล้อง แต่เข้ากันไม่ได้กับการใช้งานเชลล์อื่น ๆ ซึ่งทำการแยกฟิลด์
บนคำที่มีการแทนที่หรือใช้ IFS เป็นตัวคั่นช่องว่างทั่วไป

ผลลัพธ์ของการทดแทนอยู่ภายใต้การขยายวงเล็บปีกกา เว้นแต่จะระบุไว้เป็นอย่างอื่น
และการขยายชื่อไฟล์ (ดูหัวข้อที่เกี่ยวข้องด้านล่าง)

การแทนที่คำสั่งจะถูกแทนที่ด้วยเอาต์พุตที่สร้างโดยคำสั่งที่ระบุซึ่งก็คือ
ทำงานในเชลล์ย่อย สำหรับ $(คำสั่ง) และ ${|คำสั่ง;} และ ${ คำสั่ง;} การแทนที่, ปกติ
กฎการเสนอราคาจะใช้เมื่อ คำสั่ง แยกวิเคราะห์; อย่างไรก็ตามสำหรับผู้เลิกใช้ `คำสั่ง` แบบฟอร์ม a
'\' ตามด้วย '$', '`' หรือ '\' ใด ๆ ถูกถอดออก (ตามที่เป็น '"' เมื่อการแทนที่เป็นส่วนหนึ่ง
ของสตริงที่มีเครื่องหมายอัญประกาศคู่); แบ็กสแลช '\' ที่ตามด้วยอักขระอื่น ๆ จะไม่เปลี่ยนแปลง
เป็นกรณีพิเศษในการทดแทนคำสั่งคำสั่งของแบบฟอร์มไฟล์ ถูกตีความว่า
หมายถึงแทนที่เนื้อหาของ ไฟล์. สังเกตได้ว่า $( มีผลเช่นเดียวกับ $(แมว ฟู).

โปรดทราบว่าเชลล์บางตัวไม่ได้ใช้ parser แบบเรียกซ้ำสำหรับการแทนที่คำสั่ง ซึ่งนำไปสู่
ความล้มเหลวสำหรับโครงสร้างบางอย่าง พกพาสะดวก ใช้เป็นวิธีแก้ปัญหา 'x=$(cat) <<"EOF"' (หรือ
newline-keeping 'x=<<"EOF"' extension) แทนที่จะเพียงแค่ลากสตริง IEEE Std 1003.1
(“POSIX.1”) แนะนำให้ใช้คำสั่ง case ของแบบฟอร์ม 'x=$(case $foo in (bar) echo $bar
;; (*) echo $baz ;; esac)' แทน ซึ่งจะใช้ได้แต่ไม่ได้เป็นตัวอย่างสำหรับสิ่งนี้
ปัญหาการพกพา

x=$(กรณี $foo ในแถบ) echo $bar ;; *) echo $baz ;; เอสแซค)
# ด้านบนล้มเหลวในการแยกวิเคราะห์เชลล์เก่า ด้านล่างนี้เป็นวิธีแก้ปัญหา
x=$(eval $(cat)) <<"EOF"
กรณี $foo ในแถบ) echo $bar ;; *) echo $baz ;; esac
EOF

การแทนที่เลขคณิตถูกแทนที่ด้วยค่าของนิพจน์ที่ระบุ สำหรับ
ตัวอย่าง คำสั่ง พิมพ์ $((2+3*4)) แสดง 14. ดู คณิตศาสตร์ การแสดงออก สำหรับ
คำอธิบายของนิพจน์

พารามิเตอร์
พารามิเตอร์คือตัวแปรเชลล์ สามารถกำหนดค่าและเข้าถึงค่าได้
โดยใช้การแทนที่พารามิเตอร์ ชื่อพารามิเตอร์เป็นหนึ่งในซิงเกิลพิเศษ
พารามิเตอร์เครื่องหมายวรรคตอนหรือตัวเลขที่อธิบายไว้ด้านล่าง หรือตัวอักษรตามด้วยศูนย์หรือ
ตัวอักษรหรือตัวเลขมากขึ้น ('_' นับเป็นตัวอักษร) รูปแบบหลังสามารถใช้เป็นอาร์เรย์ได้
โดยต่อท้ายดัชนีอาร์เรย์ของแบบฟอร์ม [ด่วน] ที่ไหน ด่วน เป็นนิพจน์ทางคณิตศาสตร์
ดัชนีอาร์เรย์ใน มช ถูกจำกัดไว้ที่ช่วง 0 ถึง 4294967295 รวมอยู่ด้วย นั่นคือ,
เป็นจำนวนเต็ม 32 บิตที่ไม่ได้ลงนาม

การแทนที่พารามิเตอร์อยู่ในรูปแบบ $ชื่อ-ชื่อ} หรือ ${ชื่อ[ด่วน]} ที่ไหน ชื่อ คือ
ชื่อพารามิเตอร์ การแทนที่องค์ประกอบอาร์เรย์ทั้งหมดด้วย ${ชื่อ[*]} และ ${ชื่อ[@]} ได้ผล
เทียบเท่ากับ $* และ $@ สำหรับพารามิเตอร์ตำแหน่ง หากทำการทดแทนบน a
พารามิเตอร์ (หรือองค์ประกอบพารามิเตอร์อาร์เรย์) ที่ไม่ได้ตั้งค่า สตริง null จะถูกแทนที่
เว้นแต่ไฟล์ คำนาม ตัวเลือก (ชุด -o คำนาม or ชุด -u) ถูกตั้งค่า ซึ่งในกรณีนี้จะเกิดข้อผิดพลาด

พารามิเตอร์สามารถกำหนดค่าได้หลายวิธี อย่างแรก เชลล์ตั้งค่าโดยปริยาย
พารามิเตอร์บางอย่างเช่น '#', 'PWD' และ '$'; นี่เป็นวิธีเดียวที่อักขระพิเศษตัวเดียว
มีการตั้งค่าพารามิเตอร์ ประการที่สอง พารามิเตอร์นำเข้าจากสภาพแวดล้อมของเชลล์ที่
การเริ่มต้น ประการที่สาม สามารถกำหนดค่าพารามิเตอร์บนบรรทัดคำสั่งได้ เช่น FOO = บาร์
ตั้งค่าพารามิเตอร์ "FOO" เป็น "bar"; สามารถกำหนดพารามิเตอร์ได้หลายตัวในเครื่องเดียว
บรรทัดคำสั่งและพวกเขาสามารถตามด้วยคำสั่งง่าย ๆ ซึ่งในกรณีนี้การมอบหมายคือ
มีผลเฉพาะในช่วงเวลาของคำสั่งเท่านั้น (การมอบหมายดังกล่าวจะถูกส่งออกด้วย ดู
ด้านล่างสำหรับความหมายของสิ่งนี้) โปรดทราบว่าทั้งชื่อพารามิเตอร์และ '=' ต้องเป็น
ไม่มีเครื่องหมายคำพูดสำหรับเชลล์เพื่อรับรู้การกำหนดพารามิเตอร์ โครงสร้าง FOO+=เบส นอกจากนี้ยังมี
ได้รับการยอมรับ; ค่าเก่าและค่าใหม่จะถูกต่อกันทันที วิธีที่สี่ของการตั้งค่า
พารามิเตอร์อยู่กับ ส่งออก, ทั่วโลก, อ่านเท่านั้นและ เรียงพิมพ์ คำสั่ง; ดูของพวกเขา
คำอธิบายใน คำสั่ง การปฏิบัติ ส่วน. ประการที่ห้า for และ เลือก ลูปตั้งค่าพารามิเตอร์
เช่นเดียวกับ รับ, อ่านและ ชุด -A คำสั่ง สุดท้ายสามารถกำหนดพารามิเตอร์ได้
ค่าโดยใช้ตัวดำเนินการกำหนดภายในนิพจน์เลขคณิต (ดู คณิตศาสตร์ การแสดงออก
ด้านล่าง) หรือใช้ ${ชื่อ=ความคุ้มค่า} รูปแบบของการแทนที่พารามิเตอร์ (ดูด้านล่าง)

พารามิเตอร์ที่มีแอตทริบิวต์การส่งออก (ตั้งค่าโดยใช้ ส่งออก or เรียงพิมพ์ -x คำสั่งหรือโดย
การกำหนดพารามิเตอร์ตามด้วยคำสั่งง่าย ๆ ) จะถูกวางไว้ในสภาพแวดล้อม (ดู
เกี่ยวกับ(7)) ของคำสั่งที่เรียกใช้โดยเชลล์ as ชื่อ=ความคุ้มค่า คู่ ลำดับที่พารามิเตอร์
ปรากฏในสภาพแวดล้อมของคำสั่งที่ไม่ระบุ เมื่อเปลือกเริ่มทำงาน มัน
แยกพารามิเตอร์และค่าจากสภาพแวดล้อมและตั้งค่าการส่งออกโดยอัตโนมัติ
แอตทริบิวต์สำหรับพารามิเตอร์เหล่านั้น

ตัวดัดแปลงสามารถใช้กับ ${ชื่อ} รูปแบบการแทนที่พารามิเตอร์:

${ชื่อ:-word}
If ชื่อ ถูกตั้งค่าและไม่ใช่ NULL มันถูกแทนที่; มิฉะนั้น, word ถูกแทนที่

${ชื่อ:+word}
If ชื่อ ถูกตั้งค่าและไม่ใช่ NULL word ถูกแทนที่; มิฉะนั้นจะไม่มีอะไรมาทดแทนได้

${ชื่อ:=word}
If ชื่อ ถูกตั้งค่าและไม่ใช่ NULL มันถูกแทนที่; มิฉะนั้นจะได้รับมอบหมาย word และ
ค่าผลลัพธ์ของ ชื่อ ถูกแทนที่

${ชื่อ:?word}
If ชื่อ ถูกตั้งค่าและไม่ใช่ NULL มันถูกแทนที่; มิฉะนั้น, word พิมพ์บน
ข้อผิดพลาดมาตรฐาน (นำหน้าด้วย ชื่อ:) และเกิดข้อผิดพลาด (โดยปกติทำให้เกิดการเลิกจ้าง
ของเชลล์สคริปต์ ฟังก์ชัน หรือสคริปต์ที่มาจากการใช้ '.' ในตัว) ถ้า word is
ละเว้น สตริง "พารามิเตอร์เป็นโมฆะหรือไม่ได้ตั้งค่า" จะถูกใช้แทน ปัจจุบันเป็นข้อผิดพลาด
if word เป็นตัวแปรที่ขยายเป็นสตริงว่าง ข้อความแสดงข้อผิดพลาดก็เช่นกัน
พิมพ์

โปรดทราบว่าสำหรับสิ่งที่กล่าวมาทั้งหมด word ถือว่าเป็นการยกมาจริง ๆ และการแยกวิเคราะห์พิเศษ
ใช้กฎเกณฑ์ กฎการแยกวิเคราะห์ยังแตกต่างกันด้วยว่านิพจน์มีเครื่องหมายอัญประกาศคู่หรือไม่: word
จากนั้นใช้กฎ double-quoting ยกเว้น double quote ('"') และการปิด
วงเล็บปีกกา ซึ่งหากใช้แบ็กสแลชหนี จะถูกนำเครื่องหมายคำพูดออก

ในตัวแก้ไขข้างต้น ':' สามารถละเว้นได้ ซึ่งในกรณีนี้เงื่อนไขจะขึ้นอยู่กับ .เท่านั้น
ชื่อ กำลังตั้งค่า (ตรงข้ามกับการตั้งค่าและไม่ใช่ NULL) ถ้า word จำเป็น, พารามิเตอร์, คำสั่ง,
เลขคณิตและการแทนที่ตัวหนอน ถ้า word ไม่จำเป็นก็ไม่จำเป็น
ประเมิน

สามารถใช้รูปแบบการแทนที่พารามิเตอร์ต่อไปนี้ได้เช่นกัน (ถ้า ชื่อ เป็นอาร์เรย์, the
องค์ประกอบที่มีคีย์ "0" จะถูกแทนที่ในบริบทสเกลาร์):

-ชื่อ}
จำนวนพารามิเตอร์ตำแหน่ง if ชื่อ คือ '*', '@' หรือไม่ได้ระบุ มิฉะนั้น
ความยาว (เป็นตัวอักษร) ของค่าสตริงของพารามิเตอร์ ชื่อ.

-ชื่อ-
-ชื่อ-
จำนวนองค์ประกอบในอาร์เรย์ ชื่อ.

-ชื่อ}
ความกว้าง (ในคอลัมน์หน้าจอ) ของค่าสตริงของพารามิเตอร์ ชื่อ, หรือ -1 if
${ชื่อ} มีอักขระควบคุม

-ชื่อ}
ชื่อของตัวแปรที่อ้างถึงโดย ชื่อ. นี้จะเป็น ชื่อ ยกเว้นเมื่อ ชื่อ is
การอ้างอิงชื่อ (ผูกตัวแปร) ที่สร้างขึ้นโดย ชื่อref คำสั่ง (ซึ่งเป็นนามแฝง
for เรียงพิมพ์ -n).

-ชื่อ-
-ชื่อ-
ชื่อของดัชนี (คีย์) ในอาร์เรย์ ชื่อ.

${ชื่อ#Belt hold }
${ชื่อ##Belt hold }
If Belt hold ตรงกับจุดเริ่มต้นของค่าของพารามิเตอร์ ชื่อ, ข้อความที่ตรงกันคือ
ลบออกจากผลการทดแทน ผลลัพธ์ '#' เดียวสั้นที่สุด
การแข่งขันและสองคนในนั้นส่งผลให้การแข่งขันที่ยาวที่สุด ใช้กับเวกเตอร์ไม่ได้
(${*} หรือ ${@} หรือ ${array[*]} หรือ ${array[@]})

${ชื่อ%Belt hold }
${ชื่อ%%Belt hold }
เช่นเดียวกับการแทนที่ ${..#..} แต่จะลบออกจากจุดสิ้นสุดของค่า ไม่สามารถ
นำไปใช้กับเวกเตอร์

${ชื่อ/ลาย/เชือก}
${ชื่อ/#ลาย/เชือก}
${ชื่อ/%ลาย/เชือก}
${ชื่อ//ลาย/เชือก}
การแข่งขันที่ยาวที่สุดของ Belt hold ในค่าของพารามิเตอร์ ชื่อ ถูกแทนที่ด้วย เชือก
(ลบถ้า เชือก มันว่างเปล่า; เครื่องหมายทับ ('/') อาจถูกละเว้นในกรณีนั้น)
เครื่องหมายทับที่นำหน้าตามด้วย '#' หรือ '%' ทำให้รูปแบบถูกตรึงที่
จุดเริ่มต้นหรือจุดสิ้นสุดของค่าตามลำดับ ว่างเปล่า Belt hold สาเหตุที่ไม่
ทดแทน; เครื่องหมายทับเดียวหรือใช้ a Belt hold ที่ตรงกับความว่าง
สตริงทำให้การแทนที่เกิดขึ้นเพียงครั้งเดียว สองฟันนำทำให้เกิดทั้งหมด
รายการที่ตรงกันในค่าที่จะแทนที่ ใช้กับเวกเตอร์ไม่ได้
ดำเนินการอย่างไม่มีประสิทธิภาพอาจจะช้า

${ชื่อ:โพสต์:len}
ครั้งแรก len อักขระของ ชื่อ, เริ่มต้นที่ตำแหน่ง โพสต์, ถูกแทนที่ ทั้งคู่
โพสต์ และ:len เป็นทางเลือก ถ้า โพสต์ เป็นลบ การนับเริ่มต้นที่ส่วนท้ายของ
สตริง; หากละไว้ จะมีค่าเริ่มต้นเป็น 0 ถ้า len ละเว้นหรือมากกว่า
ความยาวของสายที่เหลือ ทั้งหมดจะถูกแทนที่ ทั้งคู่ โพสต์ และ len เป็น
ประเมินเป็นนิพจน์ทางคณิตศาสตร์ ปัจจุบัน, โพสต์ ต้องเริ่มต้นด้วยช่องว่าง
วงเล็บเปิดหรือตัวเลขที่จะรับรู้ ใช้กับเวกเตอร์ไม่ได้

${ชื่อ-
แฮช (โดยใช้อัลกอริทึม BAFH) ของการขยายของ ชื่อ. นี่ก็ใช้เช่นกัน
ภายในสำหรับ hashtables ของเชลล์

${ชื่อ@NS}
นิพจน์ที่ยกมานั้นปลอดภัยสำหรับการกลับเข้ามาใหม่ โดยมีค่าเท่ากับค่าของ ชื่อ
พารามิเตอร์ถูกแทนที่

โปรดทราบว่า Belt hold อาจต้องใช้รูปแบบลูกโลกแบบขยาย (@(...)), เดี่ยว ('...') หรือ double
("...") คำพูดหนีเว้นแต่ -o sh ถูกตั้งค่า

พารามิเตอร์พิเศษต่อไปนี้ถูกกำหนดโดยนัยโดยเชลล์และไม่สามารถตั้งค่าได้โดยตรง
ใช้การมอบหมาย:

! ID กระบวนการของกระบวนการพื้นหลังล่าสุดเริ่มต้นขึ้น หากไม่มีกระบวนการเบื้องหลัง
เริ่มแล้ว ไม่ได้ตั้งค่าพารามิเตอร์

# จำนวนพารามิเตอร์ตำแหน่ง ($ 1, $2, ฯลฯ )

$ PID ของเชลล์ หรือ PID ของเชลล์ดั้งเดิม หากเป็นเชลล์ย่อย ทำ ไม่
ใช้กลไกนี้เพื่อสร้างชื่อไฟล์ชั่วคราว ดู mktemp(1) แทน

- การต่อกันของตัวเลือกตัวอักษรเดี่ยวปัจจุบัน (ดู ชุด คำสั่งด้านล่าง
สำหรับรายการตัวเลือก)

? สถานะการออกของคำสั่งที่ไม่ซิงโครนัสล่าสุดที่ดำเนินการ ถ้าคำสั่งสุดท้าย
ถูกฆ่าโดยสัญญาณ $? ถูกตั้งค่าเป็น 128 บวกกับหมายเลขสัญญาณ แต่ไม่เกิน 255

0 ชื่อของเชลล์ พิจารณาดังนี้: อาร์กิวเมนต์แรกถึง มช ถ้ามันเป็น
เรียกด้วย -c มีตัวเลือกและข้อโต้แย้ง มิฉะนั้น ไฟล์ อาร์กิวเมนต์ if
มันถูกจัดให้; หรือชื่อฐานที่เชลล์ถูกเรียกใช้ด้วย (เช่น argv[0]) $0
ถูกกำหนดเป็นชื่อของสคริปต์ปัจจุบันหรือชื่อของฟังก์ชันปัจจุบันด้วย
ถ้ามันถูกกำหนดด้วย ฟังก์ชัน คีย์เวิร์ด (เช่น ฟังก์ชัน Korn shell style)

1 .. 9 พารามิเตอร์ตำแหน่งเก้าตัวแรกที่จัดหาให้กับเชลล์ ฟังก์ชัน หรือ
สคริปต์ที่มาจากการใช้ '.' ในตัว พารามิเตอร์ตำแหน่งเพิ่มเติมอาจเป็น
เข้าถึงโดยใช้ ${จำนวน}.

* พารามิเตอร์ตำแหน่งทั้งหมด (ยกเว้น 0) เช่น $1, $2, $3, ...
หากใช้นอกเครื่องหมายคำพูดคู่ พารามิเตอร์จะเป็นคำที่แยกจากกัน (ซึ่งอยู่ภายใต้อัญประกาศ
เพื่อแยกคำ); หากใช้ภายในเครื่องหมายคำพูดคู่ พารามิเตอร์จะถูกคั่นด้วยเครื่องหมาย
อักขระตัวแรกของพารามิเตอร์ IFS (หรือสตริงว่างหาก IFS เป็น NULL)

@ เหมือนกับ $*เว้นแต่จะใช้ภายในเครื่องหมายคำพูดคู่ ซึ่งในกรณีนี้ แยกคำคือ
สร้างขึ้นสำหรับพารามิเตอร์ตำแหน่งแต่ละรายการ หากไม่มีพารามิเตอร์ตำแหน่ง no
คำถูกสร้างขึ้น $@ สามารถใช้เข้าถึงอาร์กิวเมนต์แบบคำต่อคำโดยไม่สูญเสีย
อาร์กิวเมนต์ NULL หรือการแยกอาร์กิวเมนต์ด้วยช่องว่าง

พารามิเตอร์ต่อไปนี้ถูกตั้งค่าและ/หรือใช้โดยเชลล์:

_ (ขีดล่าง) เมื่อเชลล์ดำเนินการคำสั่งภายนอก พารามิเตอร์นี้
ถูกกำหนดในสภาพแวดล้อมของกระบวนการใหม่ไปยังเส้นทางของการดำเนินการ
สั่งการ. ในการใช้งานแบบโต้ตอบ พารามิเตอร์นี้ยังถูกตั้งค่าในพาเรนต์เชลล์เป็น
คำสุดท้ายของคำสั่งก่อนหน้า

BASHPID PID ของเชลล์หรือเชลล์ย่อย

CDPATH เช่นเดียวกับ PATH แต่ใช้เพื่อแก้ไขอาร์กิวเมนต์ของ cd คำสั่งในตัว บันทึก
ว่าหากมีการตั้งค่า CDPATH และไม่มี '.' หรือองค์ประกอบสตริงว่าง the
ไม่ได้ค้นหาไดเรกทอรีปัจจุบัน นอกจากนี้ cd คำสั่งในตัวจะแสดง
ไดเร็กทอรีผลลัพธ์เมื่อพบการจับคู่ในเส้นทางการค้นหาอื่นที่ไม่ใช่
เส้นทางที่ว่างเปล่า

COLUMNS ตั้งค่าเป็นจำนวนคอลัมน์บนเทอร์มินัลหรือหน้าต่าง ตั้งค่าเสมอ ค่าเริ่มต้น
ถึง 80 เว้นแต่ค่าตามที่รายงานโดย สติ(1) ไม่เป็นศูนย์และมีสติเพียงพอ
(ขั้นต่ำคือ 12x3); คล้ายกับ LINES พารามิเตอร์นี้ถูกใช้โดย
โหมดแก้ไขเส้นแบบโต้ตอบและโดย เลือก, ชุด -oและ ฆ่า -l คำสั่ง
เพื่อจัดรูปแบบคอลัมน์ข้อมูล นำเข้าจากสิ่งแวดล้อมหรือไม่มีการตั้งค่า
พารามิเตอร์นี้จะลบการผูกมัดกับขนาดเทอร์มินัลจริงแทน
มูลค่าที่จัดให้

ENV หากพบว่ามีการตั้งค่าพารามิเตอร์นี้หลังจากเรียกใช้งานไฟล์โปรไฟล์ใดๆ ค่า
ค่าที่ขยายใช้เป็นไฟล์เริ่มต้นของเชลล์ มันมักจะมีฟังก์ชั่น
และคำจำกัดความของนามแฝง

ERRNO ค่าจำนวนเต็มของเชลล์ Errno ตัวแปร. บ่งบอกถึงเหตุสุดวิสัย
ระบบเรียกล้มเหลว ยังไม่ได้ดำเนินการ

EXECSHELL หากตั้งค่าไว้ พารามิเตอร์นี้จะถือว่ามีเชลล์ที่จะใช้กับ
รันคำสั่งที่ ผู้บริหาร(2) ล้มเหลวในการดำเนินการและไม่ขึ้นต้นด้วย a
-เปลือก" ลำดับ.

FCEDIT บรรณาธิการที่ใช้โดย fc คำสั่ง (ดูด้านล่าง)

FPATH เช่นเดียวกับ PATH แต่ใช้เมื่อเรียกใช้ฟังก์ชันที่ไม่ได้กำหนดเพื่อค้นหาไฟล์
การกำหนดฟังก์ชัน นอกจากนี้ยังถูกค้นหาเมื่อไม่พบคำสั่งโดยใช้
เส้นทาง. ดู ฟังก์ชั่น ด้านล่างสำหรับข้อมูลเพิ่มเติม

HISTFILE ชื่อของไฟล์ที่ใช้เก็บประวัติคำสั่ง เมื่อได้รับมอบหมายหรือยกเลิกการตั้งค่า
ไฟล์ถูกเปิด ประวัติจะถูกตัดทอน จากนั้นโหลดจากไฟล์ ภายหลัง
คำสั่งใหม่ (อาจประกอบด้วยหลายบรรทัด) จะถูกต่อท้ายเมื่อ
เรียบเรียงได้สำเร็จ นอกจากนี้ การเรียกใช้เชลล์หลายรายการจะแชร์
ประวัติถ้าพารามิเตอร์ HISTFILE ทั้งหมดชี้ไปที่ไฟล์เดียวกัน

หมายเหตุ: หากไม่ได้ตั้งค่า HISTFILE หรือว่างเปล่า จะไม่มีการใช้ไฟล์ประวัติ นี่คือ
แตกต่างจาก AT&T UNIX ครับ.

HISTSIZE จำนวนคำสั่งปกติที่เก็บไว้สำหรับประวัติ ค่าเริ่มต้นคือ 2047 Do
ไม่ได้ตั้งค่านี้ให้เป็นค่าที่สูงเกินจริง เช่น 1000000000 เพราะ มช สามารถ
แล้วจัดสรรหน่วยความจำไม่เพียงพอสำหรับประวัติและจะไม่เริ่มต้น

หน้าแรก ไดเร็กทอรีเริ่มต้นสำหรับ cd คำสั่งและค่าแทนค่า an
ไม่มีเงื่อนไข ~ (ดู ตัวหนอน การขยายตัว ด้านล่าง)

IFS Internal field separator ใช้ระหว่างการแทนที่และโดย อ่าน คำสั่ง to
แบ่งค่าออกเป็นอาร์กิวเมนต์ที่แตกต่างกัน ปกติจะตั้งเป็นช่องว่าง แท็บ และขึ้นบรรทัดใหม่
ดู การแทน ด้านบนสำหรับรายละเอียด

หมายเหตุ: พารามิเตอร์นี้ไม่ได้นำเข้าจากสภาพแวดล้อมเมื่อเชลล์เป็น
เริ่มต้น

KSHEGID ID กลุ่มที่มีประสิทธิภาพของเชลล์

KSHGID ID กลุ่มจริงของเชลล์

KSHUID ID ผู้ใช้ที่แท้จริงของเชลล์

KSH_VERSION ชื่อและเวอร์ชันของเชลล์ (อ่านอย่างเดียว) ดูเพิ่มเติมที่คำสั่งเวอร์ชัน
in Emacs การแก้ไข โหมด และ Vi การแก้ไข โหมด ส่วนด้านล่าง

LINENO หมายเลขบรรทัดของฟังก์ชันหรือเชลล์สคริปต์ที่กำลังเป็น
ดำเนินการ

LINES ตั้งค่าจำนวนบรรทัดบนเทอร์มินัลหรือหน้าต่าง ตั้งค่าเสมอ ค่าเริ่มต้นเป็น
24. ดูคอลัมน์

EPOHREALTIME
เวลาตั้งแต่ยุคที่กลับมาโดย รับเวลาของวัน(2) จัดรูปแบบเป็นทศนิยม
tv_วินาที ตามด้วยจุด ('.') และ tv_usec เสริมทศนิยมหกตำแหน่งพอดี
ตัวเลข

OLDPWD ไดเร็กทอรีการทำงานก่อนหน้า ยกเลิกการตั้งค่า if cd เปลี่ยนไม่สำเร็จ
ไดเร็กทอรีตั้งแต่เชลล์เริ่มต้น หรือถ้าเชลล์ไม่รู้ว่ามันอยู่ที่ไหน

OPTAR เมื่อใช้ รับมันมีอาร์กิวเมนต์สำหรับตัวเลือกที่แยกวิเคราะห์ถ้ามัน
ต้องการอย่างใดอย่างหนึ่ง

OPTIND ดัชนีของอาร์กิวเมนต์ถัดไปที่จะถูกประมวลผลเมื่อใช้ รับ. มอบหมาย 1
พารามิเตอร์นี้ทำให้ รับ เพื่อประมวลผลอาร์กิวเมนต์ตั้งแต่เริ่มต้น
ครั้งหน้าจะเรียก

PATH เครื่องหมายทวิภาค (เซมิโคลอนบน OS/2) คั่นรายการไดเร็กทอรีที่ค้นหา
เมื่อค้นหาคำสั่งและไฟล์ที่มาโดยใช้ '.' คำสั่ง (ดูด้านล่าง)
สตริงว่างที่เกิดจากโคลอนนำหน้าหรือต่อท้าย หรือสองตัวที่อยู่ติดกัน
โคลอน จะถือว่าเป็น '.' (ไดเร็กทอรีปัจจุบัน).

PGRP ID โปรเซสของหัวหน้ากลุ่มโปรเซสของเชลล์

PIPESTATUS อาร์เรย์ที่มีรหัสระดับข้อผิดพลาด (สถานะทางออก) ทีละรหัสของรหัสล่าสุด
ไปป์ไลน์ทำงานในเบื้องหน้า

PPID ID โปรเซสของพาเรนต์ของเชลล์

PS1 พรอมต์หลักสำหรับเชลล์แบบโต้ตอบ พารามิเตอร์ คำสั่ง และเลขคณิต
ดำเนินการเปลี่ยนตัว และ '!' ถูกแทนที่ด้วยคำสั่งปัจจุบัน
หมายเลข (ดู fc คำสั่งด้านล่าง) ตัวอักษร '!' สามารถใส่ในพรอมต์โดย
วาง '!!' ใน PS1

พรอมต์เริ่มต้นคือ '$ ' สำหรับผู้ใช้ที่ไม่ใช่รูท '# ' สำหรับรูท ถ้า มช is
เรียกใช้โดยรูทและ PS1 ไม่มีอักขระ '#' ค่าเริ่มต้น
จะถูกใช้แม้ว่า PS1 จะมีอยู่แล้วในสภาพแวดล้อม

พื้นที่ มช แจกพร้อมตัวอย่าง dot.mkshrc ที่มีความซับซ้อน
ตัวอย่าง แต่คุณอาจชอบสิ่งต่อไปนี้ (โปรดทราบว่า
${HOSTNAME:=$(hostname)} และส่วนคำสั่งแยกความแตกต่างของ root-vs-user คือ (in
ตัวอย่างนี้) ดำเนินการในเวลาที่กำหนด PS1 ในขณะที่ $USER และ $PWD เป็น
Escape และจะถูกประเมินทุกครั้งที่มีการแสดงข้อความแจ้ง):

PS1='${USER:=$(id -un)}'"@${HOSTNAME:=$(hostname)}:\$PWD $(
ถ้า (( USER_ID )); จากนั้นพิมพ์ \$; อื่นพิมพ์ \" fi) "

โปรดทราบว่าเนื่องจากตัวแก้ไขบรรทัดคำสั่งพยายามหาว่า prompt . ยาวแค่ไหน
คือ (เพื่อให้พวกเขารู้ว่ามันอยู่ไกลแค่ไหนถึงขอบของหน้าจอ) หนีรหัสใน
พรอมต์มักจะทำให้สิ่งต่าง ๆ ยุ่งเหยิง บอกเปลือกว่าอย่านับบางอย่างได้
ลำดับ (เช่น Escape Code) โดยนำหน้าพร้อมต์ด้วยอักขระ
(เช่น Ctrl-A) ตามด้วยขึ้นบรรทัดใหม่ จากนั้นจึงกำหนดเส้น Escape
รหัสที่มีอักขระนี้ การเกิดของอักขระนั้นในพรอมต์คือ
ไม่พิมพ์ อย่างไรก็ตาม อย่าโทษฉันสำหรับการแฮ็กนี้ มันมาจาก
เป็นต้นฉบับ ksh88(1) ซึ่งพิมพ์อักขระตัวคั่นเพื่อให้คุณออกจาก
โชคดีถ้าคุณไม่มีอักขระที่ไม่ได้พิมพ์

เนื่องจากแบ็กสแลชและอักขระพิเศษอื่นๆ อาจถูกตีความโดยเชลล์
เพื่อตั้งค่า PS1 ให้หลีกเลี่ยงแบ็กสแลชเอง หรือใช้อัญประกาศคู่ NS
หลังเป็นประโยชน์มากขึ้น นี่เป็นตัวอย่างที่ซับซ้อนกว่า หลีกเลี่ยงโดยตรง
ป้อนอักขระพิเศษ (เช่น with ^V ในโหมดแก้ไข emacs) ซึ่ง
ฝังไดเร็กทอรีการทำงานปัจจุบันในวิดีโอย้อนกลับ (สีจะใช้งานได้
ด้วย) ในสตริงพรอมต์:

x=$(พิมพ์ \\001)
PS1="$x$(print \\r)$x$(tput so)$x\$PWD$x$(tput se)$x> "

จากข้อเสนอแนะที่แข็งแกร่งจาก David G. Korn มช ตอนนี้ยังสนับสนุน
แบบฟอร์มต่อไปนี้:

PS1=$'\1\r\1\e[7m\1$PWD\1\e[0m\1> '

PS2 Secondary prompt string โดยค่าเริ่มต้น '> ' ใช้เมื่อต้องการข้อมูลเพิ่มเติมเพื่อ
กรอกคำสั่ง

PS3 Prompt ใช้โดย เลือก คำสั่งเมื่ออ่านการเลือกเมนู ค่าเริ่มต้น
เป็น '#? '.

PS4 ใช้เพื่อเติมคำนำหน้าคำสั่งที่พิมพ์ระหว่างการติดตามการดำเนินการ (ดู ชุด
-x คำสั่งด้านล่าง) พารามิเตอร์ คำสั่ง และการแทนที่เลขคณิต
ดำเนินการก่อนที่จะพิมพ์ ค่าเริ่มต้นคือ '+ ' คุณอาจต้องการตั้งค่า
เป็น '[$EPOCHREALTIME] ' แทน เพื่อรวมการประทับเวลา

PWD ไดเร็กทอรีการทำงานปัจจุบัน อาจจะ unset หรือ NULL ถ้าเชลล์ไม่รู้
มันอยู่ที่ไหน.

RANDOM ทุกครั้งที่มีการอ้างอิง RANDOM จะมีการกำหนดตัวเลขระหว่าง 0 ถึง 32767
จาก Linear Conruential PRNG ก่อน

ตอบกลับ พารามิเตอร์เริ่มต้นสำหรับ อ่าน คำสั่งหากไม่มีชื่อ ยังใช้ใน
เลือก ลูปเพื่อเก็บค่าที่อ่านจากอินพุตมาตรฐาน

SECONDS จำนวนวินาทีตั้งแต่เชลล์เริ่มทำงาน หรือหากพารามิเตอร์เป็น
กำหนดค่าจำนวนเต็ม จำนวนวินาทีนับตั้งแต่มอบหมายบวก
ค่าที่ได้รับมอบหมาย

TMOUT หากตั้งค่าเป็นจำนวนเต็มบวกในเชลล์แบบโต้ตอบ จะระบุค่าสูงสุด
จำนวนวินาทีที่เชลล์จะรอการป้อนข้อมูลหลังจากพิมพ์หลัก
พร้อมท์ (PS1) หากเกินเวลา เชลล์จะออก

TMPDIR ไฟล์เชลล์ชั่วคราวของไดเร็กทอรีถูกสร้างขึ้น ถ้าพารามิเตอร์นี้ไม่ใช่
ตั้งค่าหรือไม่มีเส้นทางที่แน่นอนของไดเร็กทอรีที่เขียนได้ชั่วคราว
ไฟล์ถูกสร้างขึ้นใน / Tmp.

USER_ID ID ผู้ใช้ที่มีประสิทธิภาพของเชลล์

ตัวหนอน การขยายตัว
การขยายตัวหนอนซึ่งทำควบคู่ไปกับการแทนที่พารามิเตอร์ทำได้โดยใช้คำ
เริ่มต้นด้วย '~' ที่ไม่มีเครื่องหมายคำพูด อักขระที่ตามหลังตัวหนอน จนถึง '/' ตัวแรก if
ใด ๆ จะถือว่าเป็นชื่อล็อกอิน หากชื่อล็อกอินว่างเปล่า '+' หรือ '-' ค่าของ
พารามิเตอร์ HOME, PWD หรือ OLDPWD ถูกแทนที่ตามลำดับ มิฉะนั้น รหัสผ่าน
ไฟล์ถูกค้นหาด้วยชื่อล็อกอิน และนิพจน์ตัวหนอนถูกแทนที่ด้วย user's
โฮมไดเร็กทอรี หากไม่พบชื่อล็อกอินในไฟล์รหัสผ่านหรือหากมีการอ้างอิงหรือ
การแทนที่พารามิเตอร์เกิดขึ้นในชื่อล็อกอิน ไม่มีการแทนที่ใด ๆ

ในการกำหนดพารามิเตอร์ (เช่น คำสั่งที่นำหน้าคำสั่งง่าย ๆ หรือคำสั่งที่เกิดขึ้นใน
ข้อโต้แย้งของ นามแฝง, ส่งออก, ทั่วโลก, อ่านเท่านั้นและ เรียงพิมพ์) ตัวหนอนขยายเสร็จหลังจาก
การกำหนดใดๆ (เช่น หลังเครื่องหมายเท่ากับ) หรือหลังเครื่องหมายทวิภาค (':'); ชื่อล็อกอิน
ยังคั่นด้วยเครื่องหมายทวิภาค

โฮมไดเร็กทอรีของชื่อล็อกอินที่ขยายก่อนหน้านี้จะถูกแคชและนำกลับมาใช้ใหม่ NS นามแฝง -d
คำสั่งสามารถใช้เพื่อแสดงรายการ เปลี่ยนแปลง และเพิ่มไปยังแคชนี้ (เช่น นามแฝง -d
fac=/usr/local/สิ่งอำนวยความสะดวก; cd ~fac/ถัง).

ทาบ การขยายตัว (สลับกัน)
นิพจน์วงเล็บปีกกาอยู่ในรูปแบบต่อไปนี้:

อุปสรรค{str1-สเตรน}วิภัตติ

นิพจน์ขยายเป็น N คำแต่ละคำเป็นการต่อกันของ อุปสรรค, Stri,
และ วิภัตติ (เช่น “a{c,b{X,Y},d}e” ขยายเป็นคำสี่คำ: “ace”, “abXe”, “abYe” และ “ade”)
ดังที่ระบุไว้ในตัวอย่าง นิพจน์วงเล็บปีกกาสามารถซ้อนได้และคำที่ได้จะไม่
จัดเรียง นิพจน์วงเล็บต้องมีเครื่องหมายจุลภาคที่ไม่มีเครื่องหมายคำพูด (',') เพื่อให้เกิดการขยาย (เช่น
{} และ {ฟู} ไม่ขยาย) การขยายวงเล็บปีกกาจะดำเนินการหลังจากการแทนที่พารามิเตอร์
และก่อนการสร้างชื่อไฟล์

เนื้อไม่มีมัน ชื่อ รูปแบบ
รูปแบบชื่อไฟล์คือคำที่มีเครื่องหมาย '?', '*', '+', '@' หรือ '!'
อักขระหรือลำดับ “[..]” เมื่อขยายโครงเหล็กแล้ว เปลือกจะแทนที่
รูปแบบชื่อไฟล์ที่มีการจัดเรียงชื่อไฟล์ทั้งหมดที่ตรงกับรูปแบบ (ถ้าไม่ใช่
ไฟล์ตรงกัน คำจะไม่เปลี่ยนแปลง) องค์ประกอบรูปแบบมีความหมายดังต่อไปนี้:

? ตรงกับอักขระตัวเดียว

* จับคู่ลำดับของอ็อกเท็ตใด ๆ

[..] จับคู่ octets ใด ๆ ในวงเล็บ ช่วงของออกเตตสามารถระบุได้โดย
แยกสองออกเตตด้วย '-' (เช่น “[a0-9]” ตรงกับตัวอักษร 'a' หรือตัวเลขใดๆ)
เพื่อแสดงตัวเอง ต้องใส่เครื่องหมาย '-' หรือ octet ตัวแรกหรือตัวสุดท้าย
ในรายการออคเต็ต ในทำนองเดียวกัน จะต้องใส่เครื่องหมาย ']' หรืออ็อกเต็ตแรกในรายการ
หากเป็นการแสดงตนแทนการสิ้นสุดรายการ นอกจากนี้ '!' ปรากฏตัว
ที่ต้นรายการมีความหมายพิเศษ (ดูด้านล่าง) ดังนั้นเพื่อเป็นตัวแทนของตัวเอง
จะต้องยกมาหรือปรากฏในภายหลังในรายการ

[!..] ชอบ [..] ยกเว้นแต่จะจับคู่ออคเต็ตที่ไม่อยู่ในวงเล็บ

*(Belt hold -Belt hold )
จับคู่สตริงของ octets ที่ตรงกับศูนย์หรือมากกว่าที่เกิดขึ้นของที่ระบุ
รูปแบบ ตัวอย่าง: รูปแบบ *(ฟู|บาร์) ตรงกับสตริง “”, “foo”, “bar”,
“foobarfoo” เป็นต้น

+(Belt hold -Belt hold )
จับคู่สตริงของ octets ที่ตรงกับรายการที่ระบุอย่างน้อยหนึ่งรายการ
รูปแบบ ตัวอย่าง: รูปแบบ +(ฟู|บาร์) ตรงกับสตริง "foo", "bar",
“foobar” เป็นต้น

?(Belt hold -Belt hold )
จับคู่สตริงว่างหรือสตริงที่ตรงกับรูปแบบที่ระบุอย่างใดอย่างหนึ่ง
ตัวอย่าง: รูปแบบ ?(ฟู|บาร์) จับคู่เฉพาะสตริง “”, “foo” และ “bar”

@(Belt hold -Belt hold )
จับคู่สตริงที่ตรงกับรูปแบบที่ระบุ ตัวอย่าง: รูปแบบ
@(ฟู|บาร์) จับคู่เฉพาะสตริง “foo” และ “bar”

!(Belt hold -Belt hold )
จับคู่สตริงที่ไม่ตรงกับรูปแบบที่ระบุอย่างใดอย่างหนึ่ง ตัวอย่าง: The
Belt hold !(ฟู|บาร์) ตรงกับสตริงทั้งหมดยกเว้น "foo" และ "bar"; รูปแบบ -
ตรงกับไม่มีสตริง; รูปแบบ - ตรงกับสตริงทั้งหมด (ลองคิดดู)

โปรดทราบว่าการวนซ้ำที่ซับซ้อน โดยเฉพาะอย่างยิ่งกับทางเลือกอื่นนั้นช้า ใช้แยก
การเปรียบเทียบอาจ (หรืออาจจะไม่) เร็วขึ้น

โปรดทราบว่า มช (และ พี.ดี.เอส) ไม่ตรงกับ '.' และ '..' แต่ AT&T UNIX ครับ, บอร์น shและ GNU
ทุบตี ทำ

โปรดทราบว่าไม่มีองค์ประกอบรูปแบบข้างต้นที่ตรงกับจุด ('.') ที่จุดเริ่มต้นของ a
ชื่อไฟล์หรือเครื่องหมายทับ ('/') แม้ว่าจะใช้อย่างชัดเจนในลำดับ [..] นอกจากนี้
ชื่อ '.' และ '..' จะไม่ตรงกัน แม้แต่รูปแบบ '.*'

ถ้า เครื่องหมาย ตั้งค่าตัวเลือกแล้ว ไดเร็กทอรีใดๆ ที่เกิดจากการสร้างชื่อไฟล์จะเป็น
ที่มีเครื่องหมาย '/' ต่อท้าย

อินพุต / เอาต์พุต การเปลี่ยนเส้นทาง
เมื่อดำเนินการคำสั่ง อินพุตมาตรฐาน เอาต์พุตมาตรฐาน และข้อผิดพลาดมาตรฐาน (file
descriptors 0, 1 และ 2 ตามลำดับ) โดยปกติสืบทอดมาจากเชลล์ สาม
ข้อยกเว้นคือคำสั่งในไพพ์ไลน์ที่อินพุตมาตรฐานและ/หรือมาตรฐาน
เอาต์พุตคือคำสั่งที่ตั้งค่าโดยไพพ์ไลน์ คำสั่งแบบอะซิงโครนัสที่สร้างขึ้นเมื่อการควบคุมงานเป็น
ปิดใช้งาน ซึ่งอินพุตมาตรฐานถูกตั้งค่าเริ่มต้นเป็นจาก / dev / nullและคำสั่งสำหรับ
ซึ่งระบุการเปลี่ยนเส้นทางใด ๆ ต่อไปนี้:

>ไฟล์ เอาต์พุตมาตรฐานถูกเปลี่ยนเส้นทางไปที่ ไฟล์. ถ้า ไฟล์ ไม่มีอยู่จริง มันถูกสร้างขึ้น
ถ้ามีอยู่เป็นไฟล์ปกติและ โนคลอบเบอร์ ตั้งค่าตัวเลือกแล้ว ข้อผิดพลาด
เกิดขึ้น; มิฉะนั้น ไฟล์จะถูกตัดทอน โปรดทราบว่านี่หมายถึงคำสั่ง cmd
<ฟู่ >ฟู จะเปิด foo สำหรับอ่านแล้วตัดตอนเปิดเพื่อ
การเขียนมาก่อน cmd มีโอกาสได้อ่านจริงๆ foo.

>|ไฟล์ เหมือนกับ >ยกเว้นไฟล์จะถูกตัดให้สั้นลง แม้ว่าไฟล์ โนคลอบเบอร์ ตั้งค่าตัวเลือกแล้ว

>>ไฟล์ เหมือนกับ >ยกเว้นถ้า ไฟล์ มีอยู่ มันถูกผนวกเข้ากับแทนที่จะถูกตัดทอน
นอกจากนี้ ไฟล์ยังเปิดในโหมดผนวก ดังนั้นการเขียนจะไปที่จุดสิ้นสุดของ . เสมอ
ไฟล์ (ดู เปิด(พ.ศ. 2)).

<ไฟล์ อินพุตมาตรฐานถูกเปลี่ยนเส้นทางจาก ไฟล์ซึ่งเปิดให้อ่านแล้ว

<>ไฟล์ เหมือนกับ <ยกเว้นไฟล์ที่เปิดไว้สำหรับอ่านและเขียน

<<เครื่องหมาย หลังจากอ่านบรรทัดคำสั่งที่มีการเปลี่ยนเส้นทางประเภทนี้ (เรียกว่า a
“เอกสารที่นี่”) เชลล์คัดลอกบรรทัดจากแหล่งคำสั่งไปยัง a
ไฟล์ชั่วคราวจนกว่าจะมีการจับคู่บรรทัด เครื่องหมาย กำลังอ่าน เมื่อคำสั่งคือ
ดำเนินการ อินพุตมาตรฐานถูกเปลี่ยนเส้นทางจากไฟล์ชั่วคราว ถ้า เครื่องหมาย
ไม่มีอักขระที่ยกมา เนื้อหาของไฟล์ชั่วคราวจะได้รับการประมวลผล
ราวกับว่าอยู่ในเครื่องหมายคำพูดคู่ทุกครั้งที่ดำเนินการคำสั่ง ดังนั้นพารามิเตอร์
คำสั่ง และดำเนินการแทนที่เลขคณิต พร้อมกับแบ็กสแลช ('\')
หนีสำหรับ '$', '`', '\' และ '\newline' แต่ไม่ใช่สำหรับ '"' หากมีหลายค่าที่นี่
เอกสารถูกใช้ในบรรทัดคำสั่งเดียวกัน โดยจะบันทึกตามลำดับ

ถ้าไม่ เครื่องหมาย จะได้รับเอกสารที่นี่สิ้นสุดที่ต่อไป << และการทดแทน
จะดำเนินการ ถ้า เครื่องหมาย เป็นเพียงชุดเดียว "''" หรือคู่ '""'
เครื่องหมายคำพูดโดยไม่มีอะไรคั่นกลาง เอกสารที่นี่จะสิ้นสุดที่บรรทัดว่างถัดไป
และจะไม่มีการทดแทน

<<-เครื่องหมาย เหมือนกับ <<ยกเว้นแท็บนำหน้าจะถูกตัดออกจากบรรทัดในเอกสารที่นี่

<<word เหมือนกับ <<ยกเว้นว่า word is เอกสารที่นี่ นี้เรียกว่าที่นี่
เชือก

<&fd อินพุตมาตรฐานซ้ำกับ file descriptor fd. fd สามารถเป็นตัวเลข
ระบุหมายเลขของตัวอธิบายไฟล์ที่มีอยู่ ตัวอักษร 'p' หมายถึง
ตัวอธิบายไฟล์ที่เกี่ยวข้องกับผลลัพธ์ของกระบวนการร่วมปัจจุบัน หรือ
อักขระ '-' แสดงว่าต้องปิดอินพุตมาตรฐาน สังเกตว่า fd is
จำกัดเพียงหลักเดียวในการใช้งานเชลล์ส่วนใหญ่

>&fd เหมือนกับ <&ยกเว้นการดำเนินการกับเอาต์พุตมาตรฐาน

&>ไฟล์ เหมือนกับ >ไฟล์ 2> & 1. นี่คือ GNU . ที่เลิกใช้แล้ว ทุบตี รองรับนามสกุล
by มช ซึ่งยังรองรับตัวเลข fd ที่ชัดเจนก่อนหน้าเช่น
3&>ไฟล์ เป็นเช่นเดียวกับ 3>ไฟล์ 2> & 3 in มช แต่มีข้อผิดพลาดทางไวยากรณ์ใน GNU ทุบตี.

&>|ไฟล์, &>>ไฟล์, &>&fd
เหมือนกับ >|ไฟล์, >>ไฟล์,หรือ >&fd, ติดตามโดย 2> & 1ดังข้างต้น เหล่านี้คือ มช
ส่วนขยาย

ในการเปลี่ยนเส้นทางใด ๆ ข้างต้น ตัวอธิบายไฟล์ที่ถูกเปลี่ยนเส้นทาง (เช่น standard
อินพุตหรือเอาต์พุตมาตรฐาน) สามารถกำหนดได้อย่างชัดเจนโดยนำหน้าการเปลี่ยนเส้นทางด้วยตัวเลข
(พกพาได้เพียงหลักเดียว) พารามิเตอร์ คำสั่ง และการแทนที่เลขคณิต ตัวหนอน
การแทนที่ และ (ถ้าเชลล์เป็นแบบโต้ตอบ) การสร้างชื่อไฟล์ทั้งหมดดำเนินการบน
ไฟล์, เครื่องหมายและ fd ข้อโต้แย้งของการเปลี่ยนเส้นทาง อย่างไรก็ตาม พึงสังเกตว่าผลของสิ่งใดๆ
การสร้างชื่อไฟล์จะใช้เฉพาะเมื่อไฟล์เดียวตรงกัน หากหลายไฟล์ตรงกัน
คำที่มีอักขระการสร้างชื่อไฟล์ที่ขยายแล้วจะถูกใช้ โปรดทราบว่าในการจำกัด
เชลล์, การเปลี่ยนเส้นทางที่สามารถสร้างไฟล์ไม่สามารถใช้ได้

สำหรับคำสั่งง่าย ๆ การเปลี่ยนเส้นทางอาจปรากฏขึ้นที่ใดก็ได้ในคำสั่ง สำหรับคำสั่งผสม
(if คำสั่ง ฯลฯ ) การเปลี่ยนเส้นทางใด ๆ จะต้องปรากฏในตอนท้าย กำลังดำเนินการเปลี่ยนเส้นทาง
หลังจากสร้างไพพ์ไลน์แล้วและจะได้รับตามลำดับ ดังนั้นต่อไปนี้จะพิมพ์ an
เกิดข้อผิดพลาดโดยมีหมายเลขบรรทัดนำหน้า:

$ cat /foo/bar 2>&1 >/dev/null | pr -n -t

ตัวอธิบายไฟล์ที่สร้างโดยการเปลี่ยนเส้นทาง I/O เป็นแบบส่วนตัวสำหรับเชลล์

คณิตศาสตร์ การแสดงออก
นิพจน์เลขคณิตจำนวนเต็มสามารถใช้ได้กับ ให้ คำสั่งภายในนิพจน์ $((..))
การอ้างอิงอาร์เรย์ภายใน (เช่น ชื่อ[ด่วน]) เป็นอาร์กิวเมนต์ตัวเลขของ ทดสอบ คำสั่ง และ as
ค่าของการกำหนดค่าให้กับพารามิเตอร์จำนวนเต็ม การเตือน: สิ่งนี้ยังส่งผลต่อโดยนัย
การแปลงเป็นจำนวนเต็ม เช่น ทำโดย ให้ คำสั่ง ไม่เคย ใช้ผู้ใช้ที่ไม่ได้เลือก
อินพุต เช่น จากสิ่งแวดล้อม ในทางคณิตศาสตร์!

นิพจน์คำนวณโดยใช้เลขคณิตที่มีเครื่องหมายและ mksh_ari_t ชนิด (32 บิตที่ลงนาม
จำนวนเต็ม) เว้นแต่จะขึ้นต้นด้วยอักขระ '#' เพียงตัวเดียว ซึ่งในกรณีนี้จะใช้ mksh_uari_t (a
เลขจำนวนเต็มไม่มีเครื่องหมาย 32 บิต)

นิพจน์อาจมีตัวระบุพารามิเตอร์ที่เป็นตัวอักษรและตัวเลข การอ้างอิงอาร์เรย์ และจำนวนเต็ม
ค่าคงที่และอาจรวมกับตัวดำเนินการ C ต่อไปนี้ (แสดงรายการและจัดกลุ่มใน
ลำดับความสำคัญที่เพิ่มขึ้น):

ตัวดำเนินการยูนารี:

- -

ตัวดำเนินการไบนารี:

,
= += -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
||
&&
|
^
&
==! =
<<=>> =
<<< >>> << >>
-
* /%

ตัวดำเนินการแบบสามส่วน:

?: (ลำดับความสำคัญสูงกว่าการมอบหมายทันที)

ตัวดำเนินการจัดกลุ่ม:

()

ค่าคงที่จำนวนเต็มและนิพจน์คำนวณโดยใช้ความกว้าง 32 บิต เซ็นชื่อหรือ
unsigned, พิมพ์ด้วย wraparound แบบเงียบบนจำนวนเต็มล้น ค่าคงที่จำนวนเต็มอาจเป็น
กำหนดฐานตามอำเภอใจโดยใช้สัญกรณ์ ฐาน#จำนวนที่นี่มี ฐาน เป็นทศนิยม
จำนวนเต็มระบุฐานและ จำนวน เป็นตัวเลขในฐานที่กำหนด นอกจากนี้
สามารถระบุจำนวนเต็มฐาน 16 โดยนำหน้าด้วย '0x' (ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) ทั้งหมด
รูปแบบของนิพจน์เลขคณิต ยกเว้นเป็นอาร์กิวเมนต์ที่เป็นตัวเลขของ ทดสอบ คำสั่งในตัว
คำนำหน้าตัวเลขที่มีเลขศูนย์หลักเดียว ('0') ไม่ทำให้เกิดการตีความเป็นเลขฐานแปด เช่น
ที่ไม่ปลอดภัยที่จะทำ

เป็นพิเศษ มช นามสกุล ตัวเลขถึงฐานของหนึ่งจะถือว่าเป็นอย่างใดอย่างหนึ่ง (8-bit
โปร่งใส) จุดโค้ด ASCII หรือ Unicode ขึ้นอยู่กับเชลล์ของ โหมด utf8 ธง (ปัจจุบัน
การตั้งค่า). AT&T UNIX ksh93 รองรับไวยากรณ์ของ “'x'” แทนที่จะเป็น “1#x” บันทึก
ที่ไบต์ NUL (ค่าจำนวนเต็มศูนย์) ไม่สามารถใช้ได้ พารามิเตอร์ที่ไม่ได้ตั้งค่าหรือว่างเปล่า
ประเมินเป็น 0 ในบริบทจำนวนเต็ม ในโหมด Unicode อ็อกเท็ตดิบจะถูกแมปเป็นช่วง
EF80..EFFF เช่นเดียวกับใน OPTU-8 ซึ่งอยู่ใน PUA และได้รับมอบหมายจาก CSUR สำหรับการใช้งานนี้ ถ้า
มากกว่าหนึ่งออคเต็ตในโหมด ASCII หรือลำดับออคเต็ตมากกว่าหนึ่งออคเต็ตที่ไม่ก่อให้เกิดผลที่ถูกต้อง
และส่งผ่านลำดับ CESU-8 ขั้นต่ำ พฤติกรรมไม่ได้ถูกกำหนด (โดยปกติ เชลล์ aborts
มีข้อผิดพลาดในการแยกวิเคราะห์ แต่ไม่ค่อยสำเร็จ เช่น ในลำดับ C2 20) นั่นเป็นเหตุผลที่คุณ
ควรใช้โหมด ASCII เสมอ เว้นแต่คุณจะรู้ว่าอินพุตมีรูปแบบ UTF-8 ที่ดีใน
ช่วง 0000..FFFD หากคุณใช้คุณสมบัตินี้ซึ่งต่างจาก อ่าน -a.

ตัวดำเนินการจะถูกประเมินดังนี้:

เอกภาพ +
ผลลัพธ์คือข้อโต้แย้ง (รวมไว้เพื่อความสมบูรณ์)

เอกภาพ -
การปฏิเสธ

! ตรรกะไม่; ผลลัพธ์คือ 1 ถ้าอาร์กิวเมนต์เป็นศูนย์, 0 ถ้าไม่ใช่

~ เลขคณิต (บิตฉลาด) ไม่ใช่

++ เพิ่มขึ้น; ต้องใช้กับพารามิเตอร์ (ไม่ใช่ตามตัวอักษรหรือนิพจน์อื่น)
พารามิเตอร์จะเพิ่มขึ้น 1 เมื่อใช้เป็นตัวดำเนินการนำหน้า ผลลัพธ์
คือค่าที่เพิ่มขึ้นของพารามิเตอร์ เมื่อใช้เป็นตัวดำเนินการ postfix
ผลลัพธ์คือค่าดั้งเดิมของพารามิเตอร์

-- คล้ายกับ ++ยกเว้นพารามิเตอร์จะลดลง 1

, แยกนิพจน์เลขคณิตสองนิพจน์; ทางซ้ายมือจะถูกประเมินก่อน
แล้วทางขวา ผลลัพธ์คือค่าของนิพจน์ทางด้านขวามือ
ด้าน

= การมอบหมาย; ตัวแปรทางด้านซ้ายถูกตั้งค่าเป็นค่าทางด้านขวา

+= -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
ผู้ประกอบการที่ได้รับมอบหมายคือ><op>=ด่วน> ก็เหมือนกับคือ>=คือ><op><ด่วน>,
ด้วยตัวดำเนินการใด ๆ ที่มีความสำคัญในด่วน> สงวนไว้ ตัวอย่างเช่น “var1 *= 5 +
3” เหมือนกับการระบุ “var1 = var1 * (5 + 3)”

|| ตรรกะหรือ; ผลลัพธ์จะเป็น 1 ถ้าอาร์กิวเมนต์ใดไม่ใช่ศูนย์ 0 ถ้าไม่ใช่ NS
อาร์กิวเมนต์ right จะถูกประเมินก็ต่อเมื่ออาร์กิวเมนต์ด้านซ้ายเป็นศูนย์

&& ตรรกะและ; ผลลัพธ์จะเป็น 1 ถ้าอาร์กิวเมนต์ทั้งสองไม่เป็นศูนย์ 0 ถ้าไม่ใช่ NS
อาร์กิวเมนต์ right จะถูกประเมินก็ต่อเมื่ออาร์กิวเมนต์ด้านซ้ายไม่เป็นศูนย์

| เลขคณิต (บิตฉลาด) หรือ

^ เลขคณิต (บิตฉลาด) XOR (พิเศษ-OR)

& เลขคณิต (บิตฉลาด) และ

== เท่ากับ; ผลลัพธ์จะเป็น 1 ถ้าอาร์กิวเมนต์ทั้งสองเท่ากัน, 0 ถ้าไม่ใช่

!= ไม่เท่ากัน; ผลลัพธ์จะเป็น 0 ถ้าอาร์กิวเมนต์ทั้งสองมีค่าเท่ากัน, 1 ถ้าไม่ใช่

< น้อยกว่า; ผลลัพธ์คือ 1 ถ้าอาร์กิวเมนต์ด้านซ้ายน้อยกว่าด้านขวา 0 if
ไม่.

<= > >=
น้อยกว่าหรือเท่ากับ มากกว่า มากกว่าหรือเท่ากับ ดู <.

<<< >>>
หมุนไปทางซ้าย (ขวา); ผลลัพธ์จะคล้ายกับกะ (ดู <<) เว้นแต่ว่า
บิตที่เลื่อนออกที่ปลายด้านหนึ่งจะถูกเลื่อนเข้าที่ปลายอีกด้านหนึ่ง แทนที่จะเป็นศูนย์
หรือเซ็นบิต

<< >> เลื่อนไปทางซ้าย (ขวา); ผลลัพธ์คืออาร์กิวเมนต์ด้านซ้ายโดยเลื่อนบิตไปทางซ้าย
(ขวา) ตามจำนวนเงินที่ให้ไว้ในอาร์กิวเมนต์ที่ถูกต้อง

-
การบวก การลบ การคูณ และการหาร

% ที่เหลือ; ผลที่ได้คือเศษสมมาตรของการแบ่งทางซ้าย
โต้แย้งโดยสิทธิ เพื่อให้ได้โมดูลัสทางคณิตศาสตร์ของ “a mod ข” ใช้
สูตร “(a % b + b) % b”

<หาเรื่อง1>?หาเรื่อง2>:หาเรื่อง3>
ถ้าหาเรื่อง1> ไม่ใช่ศูนย์ ผลลัพธ์คือหาเรื่อง2>; มิฉะนั้นผลลัพธ์คือหาเรื่อง3>.
อาร์กิวเมนต์ที่ไม่ใช่ผลลัพธ์จะไม่ถูกประเมิน

กระบวนการร่วม
กระบวนการร่วม (ซึ่งเป็นไปป์ไลน์ที่สร้างด้วยตัวดำเนินการ '|&') เป็นกระบวนการแบบอะซิงโครนัส
ที่เชลล์ทั้งสองสามารถเขียนถึง (โดยใช้ พิมพ์ -p) และอ่านจาก (โดยใช้ อ่าน -p). อินพุต
และผลลัพธ์ของกระบวนการร่วมยังสามารถจัดการได้โดยใช้ >&p และ <&p การเปลี่ยนเส้นทาง
ตามลำดับ เมื่อเริ่มกระบวนการร่วมแล้ว จะไม่สามารถเริ่มกระบวนการอื่นได้จนกว่ากระบวนการร่วม
ออกจากกระบวนการหรือจนกว่าอินพุตของกระบวนการร่วมจะถูกเปลี่ยนเส้นทางโดยใช้an exec n>&p
การเปลี่ยนเส้นทาง หากอินพุตของกระบวนการร่วมถูกเปลี่ยนเส้นทางด้วยวิธีนี้ กระบวนการร่วมถัดไปจะเป็น
เริ่มต้นจะแบ่งปันผลลัพธ์กับกระบวนการร่วมแรก เว้นแต่ผลลัพธ์ของการเริ่มต้น
กระบวนการร่วมถูกเปลี่ยนเส้นทางโดยใช้ an exec n<&p การเปลี่ยนเส้นทาง

หมายเหตุบางประการเกี่ยวกับกระบวนการร่วม:

· วิธีเดียวที่จะปิดอินพุตของกระบวนการร่วม (เพื่อให้กระบวนการร่วมอ่านจุดสิ้นสุดของไฟล์) คือ
เพื่อเปลี่ยนเส้นทางอินพุตไปยัง file descriptor ที่มีตัวเลขแล้วปิด file descriptor นั้น:
exec 3>&p; exec 3>&-

· เพื่อให้โปรเซสร่วมแชร์เอาต์พุตร่วมกัน เชลล์ต้องเก็บ write
ส่วนของท่อส่งออกเปิดอยู่ ซึ่งหมายความว่าจะตรวจไม่พบจุดสิ้นสุดไฟล์จนกว่าจะถึง
กระบวนการร่วมทั้งหมดที่แชร์ผลลัพธ์ของกระบวนการร่วมได้ออกแล้ว (เมื่อออกทั้งหมด
เปลือกปิดสำเนาของไปป์) สามารถหลีกเลี่ยงได้โดยการเปลี่ยนเส้นทางเอาต์พุตไปที่a
ตัวอธิบายไฟล์ที่มีตัวเลข (เนื่องจากสิ่งนี้ทำให้เชลล์ปิดการคัดลอก) สังเกตว่า
ลักษณะการทำงานนี้แตกต่างจาก Korn shell ดั้งเดิมเล็กน้อยซึ่งปิดการคัดลอก
ของส่วนการเขียนของเอาท์พุตกระบวนการร่วมเมื่อกระบวนการร่วมที่เริ่มต้นล่าสุด
(แทนที่จะออกจากกระบวนการร่วมการแชร์ทั้งหมด)

· พิมพ์ -p จะละเว้นสัญญาณ SIGPIPE ระหว่างการเขียนหากสัญญาณไม่ได้ถูกดักจับหรือ
ละเลย; เช่นเดียวกันหากอินพุตกระบวนการร่วมซ้ำกับไฟล์อื่น
คำอธิบายและ พิมพ์ -un ถูกนำมาใช้.

ฟังก์ชั่น
ฟังก์ชั่นถูกกำหนดโดยใช้ Korn shell ฟังก์ชัน ชื่อฟังก์ชัน ไวยากรณ์หรือ
บอร์น/POSIX เชลล์ ชื่อฟังก์ชัน() ไวยากรณ์ (ดูด้านล่างสำหรับความแตกต่างระหว่างสอง
แบบฟอร์ม) ฟังก์ชั่นเป็นเหมือน .‐ สคริปต์ (เช่น สคริปต์ที่มาจากการใช้ '.' ในตัว) ในนั้น
พวกมันถูกดำเนินการในสภาพแวดล้อมปัจจุบัน อย่างไรก็ตาม ไม่เหมือน .-scripts, อาร์กิวเมนต์ของเชลล์
(เช่น พารามิเตอร์ตำแหน่ง $1, $2 เป็นต้น) จะไม่ปรากฏให้เห็นข้างใน เมื่อเปลือกเป็น
การกำหนดตำแหน่งของคำสั่งฟังก์ชั่นจะถูกค้นหาหลังจากในตัวพิเศษ
คำสั่งก่อน buildins และ PATH จะถูกค้นหา

ฟังก์ชันที่มีอยู่อาจถูกลบโดยใช้ ยกเลิกการตั้งค่า -f ชื่อฟังก์ชัน. รายการฟังก์ชั่นสามารถ
รับได้โดยใช้ เรียงพิมพ์ +f และคำจำกัดความของฟังก์ชันสามารถแสดงได้โดยใช้ เรียงพิมพ์ -f.
พื้นที่ โหลดอัตโนมัติ คำสั่ง (ซึ่งเป็นนามแฝงสำหรับ เรียงพิมพ์ - ฟู่) อาจใช้สร้างไม่ได้กำหนด
ฟังก์ชัน: เมื่อเรียกใช้ฟังก์ชันที่ไม่ได้กำหนด เชลล์จะค้นหาเส้นทางที่ระบุใน
พารามิเตอร์ FPATH สำหรับไฟล์ที่มีชื่อเดียวกับฟังก์ชัน ซึ่งหากพบ จะถูกอ่าน
และดำเนินการ หากหลังจากเรียกใช้ไฟล์แล้วพบว่ามีการกำหนดฟังก์ชันที่มีชื่อไว้
ฟังก์ชั่นถูกดำเนินการ มิฉะนั้น การค้นหาคำสั่งปกติจะดำเนินต่อไป (เช่น shell
ค้นหาตารางคำสั่งในตัวปกติและ PATH) โปรดทราบว่าหากไม่พบคำสั่ง
ใช้ PATH พยายามโหลดฟังก์ชันอัตโนมัติโดยใช้ FPATH (นี่คือเอกสารที่ไม่มีเอกสาร)
คุณสมบัติของคอร์นเชลล์ดั้งเดิม)

ฟังก์ชันสามารถมีแอตทริบิวต์ได้ XNUMX อย่างคือ "trace" และ "export" ซึ่งสามารถตั้งค่าได้ด้วย เรียงพิมพ์ - ฟุต
และ เรียงพิมพ์ -fxตามลำดับ เมื่อเรียกใช้ฟังก์ชันการติดตาม เชลล์ของ เอ็กซ์เทรซ
เปิดใช้งานตัวเลือกตามระยะเวลาของฟังก์ชัน คุณลักษณะ "ส่งออก" ของฟังก์ชันคือ
ปัจจุบันไม่ได้ใช้ ใน Korn เชลล์ดั้งเดิม ฟังก์ชันที่ส่งออกจะปรากฏแก่ shell
สคริปต์ที่ดำเนินการ

เนื่องจากฟังก์ชันถูกดำเนินการในสภาพแวดล้อมของเชลล์ปัจจุบัน การกำหนดพารามิเตอร์จึงถูกสร้างขึ้น
ฟังก์ชันภายในจะมองเห็นได้หลังจากฟังก์ชันเสร็จสิ้น หากสิ่งนี้ไม่เป็นที่ต้องการ
เอฟเฟกต์ เรียงพิมพ์ คำสั่งสามารถใช้ภายในฟังก์ชันเพื่อสร้างพารามิเตอร์ภายในเครื่อง บันทึก
ที่ AT&T UNIX ksh93 ใช้การกำหนดขอบเขตแบบคงที่ (ขอบเขตส่วนกลางหนึ่งรายการ ขอบเขตภายในเครื่องหนึ่งรายการต่อฟังก์ชัน)
และอนุญาตให้ตัวแปรท้องถิ่นเฉพาะในฟังก์ชันสไตล์ Korn ในขณะที่ มช ใช้การกำหนดขอบเขตแบบไดนามิก
(ขอบเขตซ้อนของท้องที่ต่างกัน) โปรดทราบว่าพารามิเตอร์พิเศษ (เช่น $$, $!) ไม่สามารถ
กำหนดขอบเขตในลักษณะนี้

สถานะการออกของฟังก์ชันคือคำสั่งสุดท้ายที่ทำงานในฟังก์ชัน NS
ฟังก์ชั่นสามารถทำให้เสร็จทันทีโดยใช้ กลับ สั่งการ; นี้อาจจะยังใช้
เพื่อระบุสถานะการออกอย่างชัดเจน

ฟังก์ชันที่กำหนดด้วย ฟังก์ชัน คำสงวนได้รับการปฏิบัติแตกต่างไปจากนี้
วิธีจากฟังก์ชันที่กำหนดด้วย () สัญกรณ์:

· พารามิเตอร์ $0 ถูกตั้งค่าเป็นชื่อของฟังก์ชัน (ฟังก์ชันสไตล์บอร์นปล่อยให้ $0
ไม่ถูกแตะต้อง)

· การกำหนดพารามิเตอร์ก่อนหน้าการเรียกใช้ฟังก์ชันจะไม่ถูกเก็บไว้ในสภาพแวดล้อมของเชลล์
(การใช้ฟังก์ชันสไตล์บอร์นจะเก็บงานที่ได้รับมอบหมายไว้)

· OPTIND จะถูกบันทึก/รีเซ็ตและกู้คืนเมื่อเข้าและออกจากฟังก์ชันดังนั้น รับ เป็นไปได้
ใช้อย่างถูกต้องทั้งภายในและภายนอกฟังก์ชั่น (ฟังก์ชั่นสไตล์บอร์นออกจากOPTIND
ไม่ถูกแตะต้องจึงใช้ รับ ภายในฟังก์ชันรบกวนการใช้งาน รับ ข้างนอก
ฟังก์ชัน).

· ตัวเลือกเชลล์ (ชุด -o) มีขอบเขตในเครื่อง เช่น การเปลี่ยนแปลงภายในฟังก์ชันจะถูกรีเซ็ตเมื่อ
ทางออกของมัน

ในอนาคตอาจมีการเพิ่มความแตกต่างดังต่อไปนี้:

· สภาพแวดล้อมกับดัก/สัญญาณที่แยกจากกันจะถูกใช้ระหว่างการทำงานของฟังก์ชัน นี้
จะหมายความว่ากับดักที่ตั้งอยู่ภายในฟังก์ชันจะไม่ส่งผลต่อกับดักและสัญญาณของเปลือกหอย
ที่ไม่ได้ละเว้นในเปลือก (แต่อาจติดอยู่) จะมีผลเริ่มต้นใน
ฟังก์ชัน

· กับดัก EXIT หากตั้งค่าไว้ในฟังก์ชัน จะถูกดำเนินการหลังจากที่ฟังก์ชันส่งคืน

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

ต้นฉบับ ครับ และ POSIX แตกต่างกันบ้างซึ่งคำสั่งถือว่าพิเศษหรือ
ปกติ

โปรแกรมอรรถประโยชน์ในตัวพิเศษของ POSIX:

., :, ทำลาย, ต่อ, ประเมิน, exec, ทางออก, ส่งออก, อ่านเท่านั้น, กลับ, ชุด, เปลี่ยน, ครั้ง, กับดัก,
ยกเลิกการตั้งค่า

เพิ่มเติม มช คำสั่งเก็บงาน:

ในตัว, ทั่วโลก, แหล่ง, เรียงพิมพ์, รอ

Builtins ที่ไม่พิเศษ:

[, นามแฝง, bg, ผูก, แมว, cd, คำสั่ง, เสียงสะท้อน, เท็จ, fc, fg, รับ, ตำแหน่งงาน, ฆ่า, ให้, พิมพ์,
รหัสผ่าน, อ่าน, เส้นทางจริง, ตั้งชื่อใหม่, นอนหลับ, แขวน, ทดสอบ, จริง, ulimit, อูมาสก์, ยูนาเลีย, ไหน

เมื่อกำหนดประเภทของคำสั่งแล้ว การกำหนดพารามิเตอร์บรรทัดคำสั่งใดๆ จะเป็น
ดำเนินการและส่งออกในช่วงเวลาของคำสั่ง

ข้อมูลต่อไปนี้อธิบายคำสั่งในตัวแบบพิเศษและแบบปกติและแบบ builtin-like reserved
คำ:

. ไฟล์ [หาเรื่อง ...]
นี่เรียกว่าคำสั่ง "จุด" ดำเนินการคำสั่งใน ไฟล์ ในปัจจุบัน
สิ่งแวดล้อม. ไฟล์ถูกค้นหาในไดเร็กทอรีของ PATH ถ้าข้อโต้แย้งคือ
กำหนด พารามิเตอร์ตำแหน่งอาจถูกใช้เพื่อเข้าถึงในขณะที่ ไฟล์ จะถูก
ดำเนินการ หากไม่มีอาร์กิวเมนต์ พารามิเตอร์ตำแหน่งจะเป็นของ
สภาพแวดล้อมที่ใช้คำสั่ง

: [...]
คำสั่ง null สถานะการออกถูกตั้งค่าเป็นศูนย์

[ การแสดงออก ]
ดู ทดสอบ.

นามแฝง [-d | -t [-r- +-x] [-p] [+] [ชื่อ [=ความคุ้มค่า] ...]
โดยไม่มีข้อโต้แย้ง นามแฝง แสดงรายการนามแฝงทั้งหมด สำหรับชื่อใด ๆ ที่ไม่มีค่า
นามแฝงที่มีอยู่แสดงอยู่ในรายการ ชื่อใด ๆ ที่มีค่ากำหนดนามแฝง (see นามแฝง
ข้างบน).

เมื่อแสดงรายการนามแฝง จะมีการใช้รูปแบบใดรูปแบบหนึ่งจากสองรูปแบบ โดยปกตินามแฝงจะแสดงเป็น
ชื่อ=ความคุ้มค่าที่นี่มี ความคุ้มค่า ถูกยกมา หากตัวเลือกนำหน้าด้วย '+' หรือ '+' ตัวเดียว
จะได้รับในบรรทัดคำสั่งเท่านั้น ชื่อ ถูกพิมพ์

พื้นที่ -d อ็อพชันทำให้ชื่อแทนไดเร็กทอรีที่ใช้ในการขยายตัวหนอนถูกแสดงรายการ
หรือตั้งค่า (ดู ตัวหนอน การขยายตัว ข้างบน).

ถ้า -p ใช้ตัวเลือก แต่ละนามแฝงจะขึ้นต้นด้วยสตริง “นามแฝง ”

พื้นที่ -t ตัวเลือกระบุว่านามแฝงที่ติดตามจะถูกแสดงรายการ/ตั้งค่า (ค่าที่ระบุ
บนบรรทัดคำสั่งจะถูกละเว้นสำหรับนามแฝงที่ติดตาม) NS -r ตัวเลือกบ่งชี้ว่า
นามแฝงที่ติดตามทั้งหมดจะถูกรีเซ็ต

พื้นที่ -x ชุดตัวเลือก (+x เคลียร์) แอตทริบิวต์การส่งออกของนามแฝงหรือหากไม่มีชื่อ
กำหนด แสดงรายการนามแฝงที่มีแอตทริบิวต์การส่งออก (การส่งออกนามแฝงไม่มี
ผล).

bg [งาน ...]
ทำงานต่อที่หยุดทำงานที่ระบุในพื้นหลัง หากไม่มีการระบุตำแหน่งงาน %+
จะถือว่า ดู การสัมภาษณ์ ควบคุม ด้านล่างสำหรับข้อมูลเพิ่มเติม

ผูก [-l]
การผูกปัจจุบันมีการระบุไว้ ถ้า -l ธงได้รับ ผูก แทนรายการ
ชื่อของฟังก์ชันที่คีย์อาจถูกผูกไว้ ดู Emacs การแก้ไข โหมด สำหรับข้อมูลเพิ่มเติม
ข้อมูล

ผูก [-m] เชือก=[แทน] ...
ผูก เชือก=[แก้ไขคำสั่ง] ...
คำสั่งแก้ไขที่ระบุถูกผูกไว้กับที่กำหนด เชือกซึ่งควรประกอบด้วย a
อักขระควบคุมนำหน้าด้วยหนึ่งในสองอักขระนำหน้าและ
เลือกสำเร็จด้วยอักขระตัวหนอน ข้อมูลในอนาคตของ เชือก จะทำให้เกิด
แก้ไขคำสั่งให้เรียกใช้ทันที ถ้า -m ธงจะได้รับตามที่ระบุ
อินพุต เชือก หลังจากนั้นจะถูกแทนที่ทันทีโดยให้ แทน เชือก
ซึ่งอาจมีคำสั่งแก้ไขแต่ไม่มีมาโครอื่นๆ ถ้า postfix ตัวหนอนคือ
กำหนด ตัวหนอนต่อท้ายหนึ่งหรือสองส่วนหน้า และอักขระควบคุมจะถูกละเว้น
อักขระต่อท้ายอื่น ๆ จะถูกประมวลผลในภายหลัง

อักขระควบคุมอาจเขียนโดยใช้เครื่องหมายคาเร็ต เช่น ^X แทน Ctrl-X
โปรดทราบว่าแม้ว่าจะรองรับอักขระนำหน้าเพียงสองตัว (โดยปกติคือ ESC และ ^X)
สามารถสนับสนุนลำดับอักขระหลายตัวได้

การเชื่อมโยงเริ่มต้นต่อไปนี้แสดงให้เห็นว่าปุ่มลูกศร, ปุ่มโฮม, ปุ่มสิ้นสุดและปุ่มลบ
บนเทอร์มินัลหน้าจอ BSD wsvt25, xterm-xfree86 หรือ GNU ถูกผูกไว้ (แน่นอนบางส่วน
ลำดับการหลบหนีจะไม่ได้ผลดีนัก):

ผูก '^X'=คำนำหน้า-2
ผูก '^[['=prefix-2
ผูก '^XA'=up-history
ผูก '^XB'=down-history
ผูก '^XC'=forward-char
ผูก '^XD'=ถอยหลัง-ถ่าน
ผูก '^X1~'=จุดเริ่มต้นของบรรทัด
ผูก '^X7~'=จุดเริ่มต้นของบรรทัด
ผูก '^XH'=จุดเริ่มต้นของบรรทัด
ผูก '^X4~'=จุดสิ้นสุดของบรรทัด
ผูก '^X8~'=จุดสิ้นสุดของบรรทัด
ผูก '^XF'=จุดสิ้นสุดของบรรทัด
ผูก '^X3~'=delete-char-forward

ทำลาย [ระดับ]
ออกจาก ระดับภายในมากที่สุด for , เลือก, จนกระทั่ง,หรือ ในขณะที่ ห่วง ระดับ ค่าเริ่มต้นเป็น 1

ในตัว [--] คำสั่ง [หาเรื่อง ...]
ดำเนินการคำสั่งในตัว คำสั่ง.

แมว [-u] [ไฟล์ ...]
อ่านไฟล์ตามลำดับในลำดับบรรทัดคำสั่ง และเขียนลงในเอาต์พุตมาตรฐาน
ถ้า ไฟล์ เป็นขีดเดียว ('-') หรือไม่มีอยู่ อ่านจากอินพุตมาตรฐาน สำหรับโดยตรง
การโทรในตัว POSIX -u รองรับตัวเลือกแบบไม่ต้องดำเนินการ สำหรับการโทรจากเชลล์ if
ตัวเลือกใด ๆ ที่ได้รับภายนอก แมว(1) ยูทิลิตี้เป็นที่ต้องการมากกว่าบิวด์อิน

cd [-L] [dir]
cd -P [-e] [dir]
ชดีร์ [-eLP] [dir]
ตั้งค่าไดเร็กทอรีการทำงานเป็น dir. หากตั้งค่าพารามิเตอร์ CDPATH จะแสดงรายการ
เส้นทางการค้นหาสำหรับไดเร็กทอรีที่มี dir. เส้นทาง NULL หมายถึงกระแส
ไดเร็กทอรี ถ้า dir พบในองค์ประกอบใด ๆ ของเส้นทางการค้นหา CDPATH ที่ไม่ใช่
เส้นทาง NULL ชื่อของไดเร็กทอรีการทำงานใหม่จะถูกเขียนไปยังเอาต์พุตมาตรฐาน
If dir หายไป โฮมไดเร็กทอรี HOME ถูกใช้ ถ้า dir คือ '-' ก่อนหน้า
ใช้ไดเร็กทอรีการทำงาน (ดูพารามิเตอร์ OLDPWD)

ถ้า -L ใช้ตัวเลือก (เส้นทางตรรกะ) หรือถ้า กายภาพ ไม่ได้ตั้งค่าตัวเลือก (ดูที่
ชุด คำสั่งด้านล่าง) อ้างอิงถึง '..' ใน dir สัมพันธ์กับเส้นทางที่เคยไปถึง
ไดเรกทอรี ถ้า -P ใช้ตัวเลือก (เส้นทางทางกายภาพ) หรือถ้า กายภาพ ตัวเลือกที่
set, '..' สัมพันธ์กับแผนผังไดเร็กทอรีระบบไฟล์ PWD และ OLDPWD
พารามิเตอร์ได้รับการอัปเดตเพื่อสะท้อนถึงไดเร็กทอรีการทำงานปัจจุบันและเก่า
ตามลำดับ ถ้า -e ตัวเลือกถูกตั้งค่าสำหรับการข้ามผ่านระบบไฟล์จริง และ PWD
ไม่สามารถตั้งค่าได้ รหัสออกคือ 1; มากกว่า 1 หากเกิดข้อผิดพลาด 0
มิฉะนั้น.

cd [-eLP] เก่า ใหม่
ชดีร์ [-eLP] เก่า ใหม่
สตริง ใหม่ ถูกแทนที่ด้วย เก่า ในไดเร็กทอรีปัจจุบันและเชลล์
พยายามเปลี่ยนเป็นไดเร็กทอรีใหม่

คำสั่ง [-พีวีวี] cmd [หาเรื่อง ...]
ถ้าทั้ง -v ไม่ -V มีตัวเลือกให้ cmd ถูกดำเนินการเหมือนกับว่า คำสั่ง มี
ไม่ได้ระบุไว้ โดยมีข้อยกเว้นสองประการ: ประการแรก cmd ไม่สามารถเป็นฟังก์ชันเชลล์ได้ และ
ประการที่สอง คำสั่งในตัวพิเศษสูญเสียความพิเศษ (เช่น การเปลี่ยนเส้นทางและ
ข้อผิดพลาดของยูทิลิตี้ไม่ทำให้เชลล์ออกจากการทำงาน และการกำหนดคำสั่งไม่ได้
ถาวร).

ถ้า -p มีตัวเลือกให้ใช้เส้นทางการค้นหาเริ่มต้นแทนค่าปัจจุบัน
ของ PATH ซึ่งค่าจริงจะขึ้นอยู่กับระบบ

ถ้า -v ให้ตัวเลือกแทนการดำเนินการ cmd, ข้อมูลเกี่ยวกับสิ่งที่จะเป็น
ถูกประหารชีวิต (และทำเช่นเดียวกันสำหรับ หาเรื่อง ...). สำหรับบิวด์อิน ฟังก์ชัน และ
คีย์เวิร์ด ชื่อจะถูกพิมพ์อย่างง่าย สำหรับนามแฝง คำสั่งที่กำหนดคือ
พิมพ์; สำหรับยูทิลิตี้ที่พบโดยการค้นหาพารามิเตอร์ PATH ซึ่งเป็นเส้นทางแบบเต็มของ
พิมพ์คำสั่งแล้ว หากไม่พบคำสั่ง (เช่น การค้นหาเส้นทางล้มเหลว) จะไม่มีอะไรเป็น
พิมพ์และ คำสั่ง ออกด้วยสถานะที่ไม่ใช่ศูนย์ NS -V ตัวเลือกเป็นเหมือน -v
ตัวเลือกยกเว้นว่ามันละเอียดกว่า

ต่อ [ระดับ]
ข้ามไปที่จุดเริ่มต้นของ ระดับภายในมากที่สุด for , เลือก, จนกระทั่ง,หรือ ในขณะที่ ห่วง
ระดับ ค่าเริ่มต้นเป็น 1

เสียงสะท้อน [-อีน] [หาเรื่อง ...]
คำเตือน: ยูทิลิตี้นี้ไม่สามารถพกพาได้ ใช้ Korn เชลล์ในตัว พิมพ์ แทน.

พิมพ์อาร์กิวเมนต์ (คั่นด้วยช่องว่าง) ตามด้วยขึ้นบรรทัดใหม่ไปยังมาตรฐาน
เอาท์พุท การขึ้นบรรทัดใหม่จะถูกระงับหากอาร์กิวเมนต์ใดๆ มีแบ็กสแลช
ลำดับ '\c' ดู พิมพ์ คำสั่งด้านล่างสำหรับรายการลำดับแบ็กสแลชอื่น ๆ
ที่เป็นที่ยอมรับ

ตัวเลือกนี้มีให้เพื่อความเข้ากันได้กับเชลล์สคริปต์ BSD NS -n ตัวเลือก
ระงับการขึ้นบรรทัดใหม่ -e เปิดใช้งานการตีความแบ็กสแลช (no-op, ตั้งแต่
โดยปกติจะทำ) และ -E ระงับการตีความแบ็กสแลช

ถ้า POSIX or sh ตั้งค่าตัวเลือกแล้ว หรือนี่คือการโทรในตัวโดยตรง เฉพาะรายการแรกเท่านั้น
อาร์กิวเมนต์จะถือเป็นตัวเลือก และเฉพาะในกรณีที่เป็น "-n” แบ็กสแลช
การตีความถูกปิดใช้งาน

ประเมิน คำสั่ง ...
อาร์กิวเมนต์ถูกต่อกัน (มีช่องว่างระหว่างกัน) เพื่อสร้างสตริงเดียว
ซึ่งเชลล์จะแยกวิเคราะห์และดำเนินการในสภาพแวดล้อมปัจจุบัน

exec [-a argv0] [-c] [คำสั่ง [หาเรื่อง ...]]
คำสั่งถูกดำเนินการโดยไม่ต้องฟอร์ก แทนที่กระบวนการเชลล์ นี่คือ
ปัจจุบันสัมบูรณ์ กล่าวคือ exec ไม่กลับมาแม้ว่า คำสั่ง ไม่พบ NS
-a ตัวเลือกอนุญาตให้ตั้งค่า argv[0] อื่นและ -c ล้างสิ่งแวดล้อม
ก่อนดำเนินการโปรเซสลูก ยกเว้นตัวแปร _ และการกำหนดโดยตรง

หากไม่มีคำสั่งใดๆ ยกเว้นการเปลี่ยนเส้นทาง I/O การเปลี่ยนเส้นทาง I/O จะเป็นแบบถาวร
และเปลือกจะไม่ถูกแทนที่ ตัวอธิบายไฟล์ใด ๆ ที่มากกว่า 2 ซึ่งเปิดอยู่
or dup(2)'d ในลักษณะนี้ไม่สามารถใช้ได้กับคำสั่งที่ดำเนินการอื่น ๆ (เช่น
คำสั่งที่ไม่ได้อยู่ในเชลล์) โปรดทราบว่าเปลือกบอร์นแตกต่างกัน
ที่นี่; มันส่งผ่านตัวอธิบายไฟล์เหล่านี้

ทางออก [สถานะ]
เชลล์ออกด้วยสถานะการออกที่ระบุ ถ้า สถานะ ไม่ได้ระบุทางออก
สถานะคือมูลค่าปัจจุบันของ $? พารามิเตอร์.

ส่งออก [-p] [พารามิเตอร์[=ความคุ้มค่า]]
ตั้งค่าแอตทริบิวต์การเอ็กซ์พอร์ตของพารามิเตอร์ที่มีชื่อ พารามิเตอร์ที่ส่งออกจะถูกส่งผ่านใน
สภาพแวดล้อมในการดำเนินการคำสั่ง หากระบุค่า ชื่อพารามิเตอร์
ยังได้รับมอบหมาย

หากไม่ได้ระบุพารามิเตอร์ พารามิเตอร์ทั้งหมดที่มีชุดแอตทริบิวต์การส่งออกจะเป็น
พิมพ์หนึ่งรายการต่อบรรทัด ไม่ว่าจะเป็นชื่อของพวกเขาหรือถ้า '-' โดยไม่มีตัวอักษรตัวเลือกคือ
ระบุ ชื่อ=คู่ค่า หรือ กับ -p, ส่งออก คำสั่งที่เหมาะสำหรับการกลับเข้ามาใหม่

เท็จ คำสั่งที่ออกโดยมีสถานะไม่เป็นศูนย์

fc [-e บรรณาธิการ | -l [-n--r] [เป็นครั้งแรก [ล่าสุด]]
เป็นครั้งแรก และ ล่าสุด เลือกคำสั่งจากประวัติ สามารถเลือกคำสั่งได้ตามประวัติ
ตัวเลข (จำนวนลบจะย้อนกลับจากบรรทัดปัจจุบัน ล่าสุด บรรทัด) หรือ a
สตริงที่ระบุคำสั่งล่าสุดที่ขึ้นต้นด้วยสตริงนั้น NS -l ตัวเลือก
แสดงรายการคำสั่งบนเอาต์พุตมาตรฐานและ -n ยับยั้งหมายเลขคำสั่งเริ่มต้น
พื้นที่ -r ตัวเลือกกลับลำดับของรายการ ปราศจาก -l, คำสั่งที่เลือกคือ
แก้ไขโดยบรรณาธิการที่ระบุด้วย the -e ตัวเลือกหรือถ้าไม่มี -e ระบุไว้
ตัวแก้ไขที่ระบุโดยพารามิเตอร์ FCEDIT (หากไม่ได้ตั้งค่าพารามิเตอร์นี้ /ถัง/เอ็ด is
ใช้) แล้วดำเนินการโดยเชลล์

fc -e - | -s [-g] [เก่า=ใหม่] [อุปสรรค]
ดำเนินการคำสั่งที่เลือกอีกครั้ง (คำสั่งก่อนหน้าโดยค่าเริ่มต้น) หลังจากดำเนินการ
การทดแทนทางเลือกของ เก่า กับ ใหม่. ถ้า -g ถูกระบุ การเกิดทั้งหมดของ
เก่า ถูกแทนที่ด้วย ใหม่. ความหมายของ -e - และ -s เหมือนกัน: ดำเนินการ .อีกครั้ง
คำสั่งที่เลือกโดยไม่ต้องเรียกใช้ตัวแก้ไข คำสั่งนี้มักจะเข้าถึงได้ด้วย
ที่กำหนดไว้ล่วงหน้า: นามแฝง r='fc -e -'

fg [งาน ...]
ทำงานที่ระบุต่อในเบื้องหน้า หากไม่มีการระบุตำแหน่งงาน %+ is
สันนิษฐาน ดู การสัมภาษณ์ ควบคุม ด้านล่างสำหรับข้อมูลเพิ่มเติม

รับ เลือกสตริง ชื่อ [หาเรื่อง ...]
ใช้โดยโพรซีเดอร์เชลล์เพื่อแยกวิเคราะห์อาร์กิวเมนต์ที่ระบุ (หรือพารามิเตอร์ตำแหน่ง
หากไม่มีข้อโต้แย้ง) และเพื่อตรวจสอบตัวเลือกทางกฎหมาย เลือกสตริง มี
ตัวเลือกตัวอักษรที่ รับ คือการรับรู้ ถ้าตัวอักษรตามด้วยเครื่องหมายทวิภาค
ตัวเลือกคาดว่าจะมีอาร์กิวเมนต์ ตัวเลือกที่ไม่รับอาร์กิวเมนต์อาจเป็น
รวมอยู่ในอาร์กิวเมนต์เดียว หากตัวเลือกรับอาร์กิวเมนต์และตัวเลือก
อักขระไม่ใช่อักขระตัวสุดท้ายของอาร์กิวเมนต์ที่พบใน ส่วนที่เหลือของ
อาร์กิวเมนต์จะถือเป็นอาร์กิวเมนต์ของตัวเลือก มิฉะนั้น อาร์กิวเมนต์ต่อไปคือ
อาร์กิวเมนต์ของตัวเลือก

แต่ละครั้ง รับ ถูกเรียกใช้ มันจะวางตัวเลือกถัดไปในพารามิเตอร์เชลล์ ชื่อ
และดัชนีของอาร์กิวเมนต์ที่จะถูกประมวลผลโดยการเรียกต่อไปถึง รับ ใน
พารามิเตอร์เชลล์ OPTIND หากตัวเลือกถูกใส่ด้วย '+' แสดงว่าตัวเลือกนั้นวาง
in ชื่อ นำหน้าด้วย '+' เมื่อตัวเลือกต้องมีการโต้แย้ง รับ สถานที่
มันอยู่ในพารามิเตอร์เชลล์ OPTARG

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

เมื่อพบจุดสิ้นสุดของตัวเลือก รับ ออกด้วยทางออกที่ไม่เป็นศูนย์
สถานะ. ตัวเลือกสิ้นสุดที่อาร์กิวเมนต์แรก (ไม่ใช่อาร์กิวเมนต์) ที่ไม่เริ่มทำงาน
ด้วย '-' หรือเมื่อพบอาร์กิวเมนต์ '-'

การแยกวิเคราะห์ตัวเลือกสามารถรีเซ็ตได้โดยการตั้งค่า OPTIND เป็น 1 (การดำเนินการนี้จะเสร็จสิ้นโดยอัตโนมัติ
เมื่อใดก็ตามที่เชลล์หรือโพรซีเดอร์เชลล์ถูกเรียกใช้)

คำเตือน: การเปลี่ยนค่าของพารามิเตอร์เชลล์ OPTIND เป็นค่าอื่นที่ไม่ใช่ 1 หรือ
การแยกวิเคราะห์ชุดอาร์กิวเมนต์ต่าง ๆ โดยไม่ต้องรีเซ็ต OPTIND อาจทำให้ไม่คาดคิด
ผล.

ทั่วโลก ...
ดู เรียงพิมพ์.

กัญชา [-r] [ชื่อ ...]
หากไม่มีอาร์กิวเมนต์ ชื่อพาธของคำสั่งปฏิบัติการที่แฮชจะถูกแสดงรายการ NS -r ตัวเลือก
ทำให้คำสั่งที่แฮชทั้งหมดถูกลบออกจากตารางแฮช แต่ละ ชื่อ กำลังค้นหา
ราวกับว่าเป็นชื่อคำสั่งและเพิ่มลงในตารางแฮชหากเป็นไฟล์ปฏิบัติการ
คำสั่ง

ตำแหน่งงาน [-แอลเอ็นพี] [งาน ...]
แสดงข้อมูลเกี่ยวกับงานที่ระบุ หากไม่ระบุตำแหน่งงานทั้งหมด
จะแสดง NS -n ตัวเลือกทำให้ข้อมูลแสดงเฉพาะสำหรับงานที่
ได้เปลี่ยนสถานะตั้งแต่การแจ้งเตือนครั้งล่าสุด ถ้า -l ใช้ตัวเลือก
ID กระบวนการของแต่ละกระบวนการในงานยังแสดงอยู่ NS -p ตัวเลือกทำให้เกิดเพียง
กลุ่มกระบวนการของแต่ละงานที่จะพิมพ์ ดู การสัมภาษณ์ ควบคุม ด้านล่างสำหรับรูปแบบของ งาน
และงานที่แสดง

ฆ่า [-s ป้ายชื่อ | - -สัญญาณ | - -ป้ายชื่อ- งาน | pid | พีจีอาร์พี } ...
ส่งสัญญาณที่ระบุไปยังงานที่ระบุ ID กระบวนการ หรือกลุ่มกระบวนการ ถ้า
ไม่ได้ระบุสัญญาณ จะมีการส่งสัญญาณ TERM หากมีการระบุงาน สัญญาณ
ถูกส่งไปยังกลุ่มกระบวนการของงาน ดู การสัมภาษณ์ ควบคุม ด้านล่างสำหรับรูปแบบของ งาน.

ฆ่า -l [สถานะทางออก ...]
พิมพ์ชื่อสัญญาณที่สอดคล้องกับ สถานะทางออก. หากไม่มีการระบุอาร์กิวเมนต์ a
รายการสัญญาณทั้งหมด ตัวเลข และคำอธิบายสั้นๆ จะถูกพิมพ์

ให้ [การแสดงออก ...]
แต่ละนิพจน์จะได้รับการประเมิน (ดู คณิตศาสตร์ การแสดงออก ข้างต้น). ถ้าทุกนิพจน์
ได้รับการประเมินเรียบร้อยแล้ว สถานะการออกคือ 0 (1) ถ้านิพจน์สุดท้ายได้รับการประเมิน
ไม่เป็นศูนย์ (ศูนย์) หากเกิดข้อผิดพลาดระหว่างการแยกวิเคราะห์หรือประเมินผล an
นิพจน์ สถานะการออกจะมากกว่า 1 เนื่องจากนิพจน์อาจต้องเป็น
ที่ยกมา (( ด่วน )) เป็นน้ำตาลประโยคสำหรับ { ให้ 'ด่วน'; }.

ปล่อย] นามแฝงที่ใช้ภายในสำหรับ ให้.

มโนด [-m โหมด] ชื่อ b|c สำคัญ ผู้เยาว์
มโนด [-m โหมด] ชื่อ p
สร้างไฟล์พิเศษของอุปกรณ์ ประเภทไฟล์อาจเป็น b (อุปกรณ์ประเภทบล็อก) c
(อุปกรณ์ประเภทอักขระ) หรือ p (ชื่อไปป์ FIFO) ไฟล์ที่สร้างอาจถูกแก้ไข
ตามที่มัน โหมด (ผ่านทาง -m ตัวเลือก), สำคัญ (หมายเลขเครื่องหลัก) และ ผู้เยาว์
(หมายเลขเครื่องเล็กน้อย) ปกติจะไม่เป็นส่วนหนึ่งของ มช; อย่างไรก็ตามผู้จัดจำหน่ายอาจ
ได้เพิ่มสิ่งนี้ไว้ในตัวเป็นแฮ็คความเร็ว

พิมพ์ [-nprsu[n- -R [- ที่สุด-อาร์กิวเมนต์ ...]
พิมพ์ พิมพ์อาร์กิวเมนต์บนเอาต์พุตมาตรฐาน คั่นด้วยช่องว่างและสิ้นสุด
ด้วยการขึ้นบรรทัดใหม่ NS -n ตัวเลือกระงับการขึ้นบรรทัดใหม่ โดยค่าเริ่มต้น C บางตัวหนี
มีการแปล รวมถึงสิ่งเหล่านี้ที่กล่าวถึงใน ทับขวา การขยายตัว ข้างต้นเช่นกัน
เป็น '\c' ซึ่งเทียบเท่ากับการใช้ -n ตัวเลือก. การขยายแบ็กสแลชอาจเป็น
ยับยั้งด้วย -r ตัวเลือก -s ตัวเลือกพิมพ์ไปยังไฟล์ประวัติแทน
เอาต์พุตมาตรฐาน NS -u ตัวเลือกพิมพ์ไปยัง file descriptor n (n ค่าเริ่มต้นเป็น 1 if
ละเว้น); และ -p พิมพ์ตัวเลือกไปยังกระบวนการร่วม (ดู กระบวนการร่วม ข้างบน).

พื้นที่ -R ตัวเลือกใช้เพื่อเลียนแบบ BSD . ในระดับหนึ่ง เสียงสะท้อน(1) คำสั่งซึ่งไม่
ไม่ประมวลผลลำดับ '\' เว้นแต่ว่า -e มีตัวเลือกให้ ดังที่กล่าวข้างต้น -n ตัวเลือก
ระงับการขึ้นบรรทัดใหม่ต่อท้าย

printf รูป [ข้อโต้แย้ง ...]
เอาต์พุตที่จัดรูปแบบ ประมาณเท่ากับ printf(1) ประโยชน์ เว้นแต่ใช้
เหมือน ทับขวา การขยายตัว และรหัส I/O และไม่จัดการจุดลอยตัวเป็น
ส่วนที่เหลือของ มช. ควรใช้ยูทิลิตี้ภายนอกมากกว่าบิวด์อิน มันไม่ใช่
ปกติเป็นส่วนหนึ่งของ มช; อย่างไรก็ตามผู้จัดจำหน่ายอาจเพิ่มสิ่งนี้ไว้ในตัว a
แฮ็คความเร็ว ห้ามใช้ในรหัสใหม่

รหัสผ่าน [-หจก]
พิมพ์ไดเร็กทอรีการทำงานปัจจุบัน ถ้า -L ใช้ตัวเลือกหรือถ้า กายภาพ
ไม่ได้ตั้งค่าตัวเลือก (ดูที่ ชุด คำสั่งด้านล่าง) พิมพ์เส้นทางตรรกะ (เช่น
เส้นทางที่เคย cd ไปยังไดเร็กทอรีปัจจุบัน) ถ้า -P ใช้ตัวเลือก (เส้นทางทางกายภาพ)
หรือถ้า กายภาพ ตั้งค่าตัวเลือก เส้นทางที่กำหนดจากระบบไฟล์ (by
ไดเร็กทอรี '..' ไปยังไดเร็กทอรีราก) จะถูกพิมพ์

อ่าน [-A | -a] [-d x] [-N z | -n z] [-p | -u[n--t n] [-อาร์เอส] [p ...]
อ่านบรรทัดอินพุต แยกอินพุตออกเป็นฟิลด์โดยใช้พารามิเตอร์ IFS (ดู
การแทน ด้านบน) และกำหนดแต่ละฟิลด์ให้กับพารามิเตอร์ที่ระบุ p. ถ้าไม่
มีการระบุพารามิเตอร์ พารามิเตอร์ REPLY ใช้เพื่อเก็บผลลัพธ์ กับ
-A และ -a ตัวเลือก ไม่ยอมรับพารามิเตอร์เดียวเท่านั้น ถ้ามีมากกว่านี้
พารามิเตอร์มากกว่าฟิลด์ พารามิเตอร์พิเศษถูกกำหนดเป็นสตริงว่างหรือ 0; ถ้า
มีฟิลด์มากกว่าพารามิเตอร์ พารามิเตอร์สุดท้ายถูกกำหนดส่วนที่เหลือ
ฟิลด์ (รวมถึงตัวคั่นคำ)

ตัวเลือกมีดังนี้:

-A เก็บผลลัพธ์ลงในพารามิเตอร์ p (หรือ REPLY) เป็นอาร์เรย์ของคำ

-a เก็บผลลัพธ์โดยไม่แยกคำเป็นพารามิเตอร์ p (หรือตอบกลับ) เช่น
อาร์เรย์ของอักขระ (อักขระกว้างถ้า โหมด utf8 ตัวเลือกถูกตราขึ้น
ออกเตตเป็นอย่างอื่น); codepoints ถูกเข้ารหัสเป็นตัวเลขทศนิยมโดยค่าเริ่มต้น

-d x ใช้ไบต์แรกของ x, NUL หากว่างเปล่า แทนที่จะเป็นอักขระขึ้นบรรทัดใหม่ ASCII
เป็นตัวคั่นบรรทัดอินพุต

-N z แทนที่จะอ่านจนจบบรรทัด ให้อ่านตรง ๆ z ไบต์ ถ้า EOF หรือ a
หมดเวลา การอ่านบางส่วนถูกส่งกลับพร้อมสถานะการออก 1

-n z แทนที่จะอ่านจนจบบรรทัด ให้อ่านถึง z ไบต์ แต่ส่งคืนทันที
อ่านไบต์ใด ๆ เช่นจากอุปกรณ์ปลายทางที่ช้าหรือหาก EOF หรือหมดเวลา
เกิดขึ้น

-p อ่านจากกระบวนการร่วมที่ทำงานอยู่ในปัจจุบัน ดู กระบวนการร่วม ด้านบนสำหรับรายละเอียด
เกี่ยวกับเรื่องนี้

-u[n] อ่านจากไฟล์ descriptor n (ค่าเริ่มต้นคือ 0, คืออินพุตมาตรฐาน) NS
อาร์กิวเมนต์ต้องตามอักขระตัวเลือกทันที

-t n ขัดจังหวะการอ่านหลังจาก n วินาที (ระบุเป็นค่าทศนิยมบวกด้วย an
ส่วนเศษส่วนเสริม) สถานะการออกของ อ่าน คือ 1 ถ้าหมดเวลา
เกิดขึ้น แต่การอ่านบางส่วนอาจยังคงถูกส่งกลับ

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

-s บรรทัดอินพุตจะถูกบันทึกไว้ในประวัติ

หากอินพุตเป็นเทอร์มินัล ทั้ง -N และ -n ตัวเลือกตั้งค่าเป็นโหมดดิบ พวกเขา
อ่านไฟล์ทั้งหมดถ้า -1 ถูกส่งเป็น z ข้อโต้แย้ง.

พารามิเตอร์แรกอาจมีเครื่องหมายคำถามและสตริงต่อท้ายซึ่ง
กรณีที่สตริงถูกใช้เป็นพรอมต์ (พิมพ์ไปยังข้อผิดพลาดมาตรฐานก่อนอินพุตใด ๆ is
อ่าน) ถ้าอินพุตเป็น a TTY(4) (เช่น อ่าน nfoo?'หมายเลข of ฟู: ').

หากไม่มีการอ่านอินพุตหรือหมดเวลา อ่าน ออกด้วยสถานะที่ไม่ใช่ศูนย์

เคล็ดลับที่มีประโยชน์อีกชุดหนึ่ง: If อ่าน ถูกรันในลูปเช่น ในขณะที่ อ่าน ฟู; do ... ;
ทำ จากนั้นช่องว่างนำจะถูกลบออก (IFS) และแบ็กสแลชประมวลผล คุณ
อาจต้องการใช้ ในขณะที่ ไอเอฟเอส= อ่าน -r ฟู; do ... ; ทำ สำหรับ I/O ดั้งเดิม ในทำนองเดียวกัน
เมื่อใช้ไฟล์ -a ตัวเลือกการใช้ -r ตัวเลือกอาจจะรอบคอบ เช่นเดียวกัน
สำหรับ:

หา . -type f -print0 |& \
ในขณะที่ IFS= read -d '' -pr ชื่อไฟล์; ทำ
พิมพ์ -r -- "พบ <${filename#./}>"
ทำ

วงในจะดำเนินการในเชลล์ย่อยและการเปลี่ยนแปลงตัวแปรไม่สามารถ
เผยแพร่หากดำเนินการในไปป์ไลน์:

บาร์ | baz | ในขณะที่อ่าน foo; ทำ ...; เสร็จแล้ว

ใช้กระบวนการร่วมแทน:

บาร์ | บาส |&
ในขณะที่อ่าน -p foo; ทำ ...; เสร็จแล้ว
ผู้บริหาร 3>&p; ผู้บริหาร 3>&-

อ่านเท่านั้น [-p] [พารามิเตอร์ [=ความคุ้มค่า] ...]
ตั้งค่าแอตทริบิวต์แบบอ่านอย่างเดียวของพารามิเตอร์ที่มีชื่อ ถ้าให้ค่า
มีการตั้งค่าพารามิเตอร์ไว้ก่อนที่จะตั้งค่าแอตทริบิวต์ เมื่อสร้างพารามิเตอร์แล้ว
อ่านอย่างเดียว ไม่สามารถยกเลิกการตั้งค่า และไม่สามารถเปลี่ยนแปลงค่าได้

หากไม่มีการระบุพารามิเตอร์ ชื่อของพารามิเตอร์ทั้งหมดที่มีการอ่านอย่างเดียว
แอตทริบิวต์ถูกพิมพ์หนึ่งรายการต่อบรรทัด เว้นแต่ -p ใช้ตัวเลือกซึ่งในกรณีนี้
อ่านเท่านั้น คำสั่งที่กำหนดพารามิเตอร์แบบอ่านอย่างเดียวทั้งหมด รวมทั้งค่าของมันคือ
พิมพ์

เส้นทางจริง [--] ชื่อ
พิมพ์ชื่อพาธสัมบูรณ์ที่แก้ไขแล้วซึ่งสอดคล้องกับ ชื่อ. ถ้า ชื่อ ลงท้ายด้วย
slash ('/') มันยังตรวจสอบการมีอยู่และเป็นไดเร็กทอรีหรือไม่
มิฉะนั้น, เส้นทางจริง คืนค่า 0 หากชื่อพาธมีอยู่หรือสร้างได้
ทันที นั่นคือทั้งหมดยกเว้นองค์ประกอบสุดท้ายที่มีอยู่และเป็นไดเร็กทอรี

ตั้งชื่อใหม่ [--] ราคาเริ่มต้นที่ ไปยัง
เปลี่ยนชื่อไฟล์ ราคาเริ่มต้นที่ ไปยัง ไปยัง. ทั้งสองต้องเป็นชื่อพาธที่สมบูรณ์และอยู่ในอุปกรณ์เดียวกัน
บิวด์อินนี้มีไว้สำหรับสถานการณ์ฉุกเฉินที่ /bin/mv กลายเป็นใช้ไม่ได้และ
โทรโดยตรง ตั้งชื่อใหม่(2)

กลับ [สถานะ]
ส่งกลับจากฟังก์ชันหรือ . สคริปต์พร้อมสถานะออก สถานะ. ถ้าไม่ สถานะ จะได้รับ
ใช้สถานะการออกของคำสั่งที่ดำเนินการล่าสุด หากใช้นอกฟังก์ชัน
or . สคริปต์มันมีผลเหมือนกับ ทางออก. สังเกตได้ว่า มช ถือว่าทั้งโปรไฟล์และ
ไฟล์ ENV เป็น . สคริปต์ในขณะที่ Korn เชลล์ดั้งเดิมถือว่าโปรไฟล์เป็น .
สคริปต์

ชุด [+-abCefhiklmnprsUuvXx] [+-o ตัวเลือก] [+-ก ชื่อ] [--] [หาเรื่อง ...]
พื้นที่ ชุด คำสั่งสามารถใช้ตั้งค่า (-) หรือล้าง (+) ตัวเลือกเชลล์ตั้งค่าตำแหน่ง
พารามิเตอร์หรือตั้งค่าพารามิเตอร์อาร์เรย์ ตัวเลือกสามารถเปลี่ยนแปลงได้โดยใช้ปุ่ม +-o ตัวเลือก
วากยสัมพันธ์ โดยที่ ตัวเลือก เป็นชื่อยาวของตัวเลือกหรือใช้ +-จดหมาย ไวยากรณ์
ที่ไหน จดหมาย เป็นชื่อตัวอักษรตัวเดียวของตัวเลือก (ตัวเลือกบางตัวเท่านั้นที่มีตัวอักษรตัวเดียว
ชื่อ). ตารางต่อไปนี้แสดงทั้งตัวอักษรตัวเลือก (ถ้ามี) และชื่อยาว
พร้อมกับคำอธิบายว่าตัวเลือกนี้ทำอะไร:

-A ชื่อ
ตั้งค่าองค์ประกอบของพารามิเตอร์อาร์เรย์ ชื่อ ไปยัง หาเรื่อง ... If -A ถูกใช้,
อาร์เรย์ถูกรีเซ็ต (เช่น ว่าง) ก่อน; ถ้า +A ใช้องค์ประกอบ N ตัวแรกถูกตั้งค่า
(โดยที่ N คือจำนวนอาร์กิวเมนต์); ส่วนที่เหลือจะไม่ถูกแตะต้อง

ไวยากรณ์ทางเลือกสำหรับคำสั่ง ชุด -A foo -- a b c ซึ่งเข้ากันได้กับ
GNU ทุบตี และยังรองรับโดย AT&T UNIX ksh93 คือ: ฟู=(ก b ค); ฟู+=(d e)

-a | -o ส่งออกทั้งหมด
พารามิเตอร์ใหม่ทั้งหมดถูกสร้างขึ้นด้วยแอตทริบิวต์การส่งออก

-b | -o แจ้ง
พิมพ์ข้อความแจ้งเตือนงานแบบอะซิงโครนัส แทนที่จะพิมพ์ก่อน
พร้อมท์ ใช้เฉพาะเมื่อเปิดใช้งานการควบคุมงาน (-m).

-C | -o โนคลอบเบอร์
ป้องกัน > เปลี่ยนเส้นทางจากการเขียนทับไฟล์ที่มีอยู่ แทน, >| ต้องใช้
เพื่อบังคับให้เขียนทับ โปรดทราบว่าไม่ปลอดภัยที่จะใช้สำหรับการสร้าง
ไฟล์ชั่วคราวหรือไฟล์ล็อคเนื่องจาก TOCTOU ในการตรวจสอบอนุญาตให้เปลี่ยนเส้นทาง
ส่งออกไปยัง / dev / null หรือไฟล์อุปกรณ์อื่นๆ แม้แต่ใน โนคลอบเบอร์ โหมด.

-e | -o ผิดพลาด
ออก (หลังจากรันกับดัก ERR) ทันทีที่เกิดข้อผิดพลาดหรือคำสั่ง
ล้มเหลว (เช่น ออกโดยมีสถานะไม่เป็นศูนย์) สิ่งนี้ใช้ไม่ได้กับคำสั่ง
ซึ่งสถานะการออกนั้นได้รับการทดสอบอย่างชัดเจนโดยโครงสร้างเชลล์เช่น if, จนกระทั่ง,
ในขณะที่,หรือ ! งบ. สำหรับ && หรือ || เฉพาะสถานะของคำสั่งสุดท้ายคือ
ทดสอบ

-f | -o โนโกล
อย่าขยายรูปแบบชื่อไฟล์

-h | -o ติดตาม
สร้างนามแฝงที่ติดตามสำหรับคำสั่งที่ดำเนินการทั้งหมด (ดู นามแฝง ข้างต้น). เปิดใช้งาน
โดยค่าเริ่มต้นสำหรับเชลล์ที่ไม่โต้ตอบ

-i | -o การโต้ตอบ
เชลล์เป็นเชลล์แบบโต้ตอบ ตัวเลือกนี้ใช้ได้เฉพาะเมื่อเชลล์
ถูกเรียก ดูด้านบนสำหรับคำอธิบายว่าสิ่งนี้หมายถึงอะไร

-k | -o คีย์เวิร์ด
การกำหนดพารามิเตอร์จะรับรู้ได้ทุกที่ในคำสั่ง

-l | -o เข้าสู่ระบบ
เชลล์เป็นเชลล์ล็อกอิน ตัวเลือกนี้ใช้ได้เฉพาะเมื่อเชลล์เป็น
เรียก ดูด้านบนสำหรับคำอธิบายว่าสิ่งนี้หมายถึงอะไร

-m | -o หน้าจอ
เปิดใช้งานการควบคุมงาน (ค่าเริ่มต้นสำหรับเชลล์แบบโต้ตอบ)

-n | -o noexec
ห้ามรันคำสั่งใดๆ มีประโยชน์สำหรับการตรวจสอบไวยากรณ์ของสคริปต์ (ละเว้น
หากมีการโต้ตอบ)

-p | -o ได้รับการยกเว้น
เชลล์เป็นเชลล์ที่มีสิทธิพิเศษ มันถูกตั้งค่าโดยอัตโนมัติหากเมื่อเปลือก
เริ่มต้น UID หรือ GID จริงไม่ตรงกับ UID ที่มีผล (EUID) หรือ GID
(EGID) ตามลำดับ ดูด้านบนสำหรับคำอธิบายว่าสิ่งนี้หมายถึงอะไร

-r | -o หวงห้าม
เชลล์เป็นเชลล์จำกัด ตัวเลือกนี้ใช้ได้เฉพาะเมื่อเชลล์เป็น
เรียก ดูด้านบนสำหรับคำอธิบายว่าสิ่งนี้หมายถึงอะไร

-s | -o สเตดิน
หากใช้เมื่อเรียกใช้เชลล์ คำสั่งจะถูกอ่านจากอินพุตมาตรฐาน ชุด
โดยอัตโนมัติหากเรียกใช้เชลล์โดยไม่มีอาร์กิวเมนต์

เมื่อ -s ใช้กับไฟล์ ชุด คำสั่งทำให้อาร์กิวเมนต์ที่ระบุเป็น
เรียงลำดับก่อนกำหนดให้กับพารามิเตอร์ตำแหน่ง (หรืออาร์เรย์ ชื่อถ้า
-A ถูกนำมาใช้).

-U | -o โหมด utf8
เปิดใช้งานการสนับสนุน UTF-8 ใน Emacs การแก้ไข โหมด และการจัดการสตริงภายใน
ฟังก์ชั่น. แฟล็กนี้ถูกปิดใช้งานโดยค่าเริ่มต้น แต่สามารถเปิดใช้งานได้โดยการตั้งค่า
บนบรรทัดคำสั่งเชลล์; ถูกเปิดใช้งานโดยอัตโนมัติสำหรับเชลล์แบบโต้ตอบ if
ร้องขอในเวลารวบรวม ระบบของคุณรองรับ ตั้งค่าภาษา(LC_CTYPE, "") and
เลือก nl_langinfo(ชุดโค้ด) หรือสภาพแวดล้อม LC_ALL, LC_CTYPE หรือ LANG
ตัวแปรและอย่างน้อยหนึ่งรายการส่งคืนสิ่งที่ตรงกับ “UTF-8” หรือ
“utf8” ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่; สำหรับการโทรในตัวโดยตรงขึ้นอยู่กับ
ตัวแปรสภาพแวดล้อมดังกล่าว หรือสำหรับ stdin หรือสคริปต์ ถ้าอินพุต
เริ่มต้นด้วยเครื่องหมายคำสั่ง UTF-8 Byte

ในอนาคตอันใกล้จะมีการใช้งานการติดตามสถานที่ซึ่งหมายความว่า ชุด -+คุณ is
เปลี่ยนเมื่อใดก็ตามที่ตัวแปรสภาพแวดล้อมที่เกี่ยวข้องกับสถานที่ POSIX เปลี่ยนแปลง

-u | -o คำนาม
การอ้างอิงพารามิเตอร์ที่ไม่ได้ตั้งค่า นอกเหนือจาก “$@” หรือ “$*” จะถือว่าเป็น
ข้อผิดพลาด เว้นแต่จะใช้ตัวแก้ไข '-', '+' หรือ '=' ตัวใดตัวหนึ่ง

-v | -o ละเอียด
เขียนอินพุตเชลล์ไปยังข้อผิดพลาดมาตรฐานในขณะที่อ่าน

-X | -o เครื่องหมาย
ทำเครื่องหมายไดเรกทอรีด้วย '/' ต่อท้ายระหว่างการสร้างชื่อไฟล์

-x | -o เอ็กซ์เทรซ
พิมพ์แผนผังคำสั่งเมื่อดำเนินการ นำหน้าด้วยค่า PS4

-o น่ารัก
งานพื้นหลังถูกรันด้วยลำดับความสำคัญที่ต่ำกว่า

-o รั้งขยาย
เปิดใช้งานการขยายวงเล็บปีกกา (aka alternation) สิ่งนี้ถูกเปิดใช้งานโดยค่าเริ่มต้น ถ้า
ปิดใช้งาน การขยายตัวหนอนหลังจากเครื่องหมายเท่ากับถูกปิดใช้งานเป็นผลข้างเคียง

-o emacs
เปิดใช้งานการแก้ไขบรรทัดคำสั่งเหมือน BRL emacs (เชลล์แบบโต้ตอบเท่านั้น); ดู Emacs
การแก้ไข โหมด.

-o จีแมค
เปิดใช้งานการแก้ไขบรรทัดคำสั่งเหมือน gmacs (เชลล์แบบโต้ตอบเท่านั้น) ปัจจุบัน
เหมือนกับการแก้ไข emacs ยกเว้นว่า transpose-chars (^T) ทำหน้าที่เล็กน้อย
ต่างกัน

-o ละเลย
เชลล์จะไม่ออก (อย่างง่ายดาย) เมื่ออ่านส่วนท้ายของไฟล์ ทางออก ต้องใช้
เพื่อหลีกเลี่ยงการเกิดลูปอนันต์ เชลล์จะออกหาก EOF อ่าน 13 ครั้งติดต่อกัน

-o สืบทอด xtrace
อย่ารีเซ็ต -o เอ็กซ์เทรซ เมื่อเข้าสู่ฟังก์ชั่น สิ่งนี้ถูกเปิดใช้งานโดยค่าเริ่มต้น

-o ไม่อัพ
อย่าฆ่างานที่กำลังทำงานด้วยสัญญาณ SIGHUP เมื่อออกจากเชลล์การเข้าสู่ระบบ
ปัจจุบันตั้งค่าเป็นค่าเริ่มต้น แต่อาจมีการเปลี่ยนแปลงในอนาคตเพื่อให้เข้ากันได้
ด้วย AT&T UNIX ครับซึ่งไม่มีตัวเลือกนี้ แต่ส่ง SIGHUP
ส่งสัญญาณ

-o โนล็อก
ไม่มีผลอะไร. ใน Korn เชลล์ดั้งเดิม สิ่งนี้จะป้องกันคำจำกัดความของฟังก์ชันจาก
ถูกเก็บไว้ในไฟล์ประวัติ

-o กายภาพ
ทำให้เกิด cd และ รหัสผ่าน คำสั่งให้ใช้ “กายภาพ” (เช่น ระบบไฟล์) '..'
ไดเร็กทอรีแทนไดเร็กทอรี "ตรรกะ" (เช่นเชลล์จัดการ '..' ซึ่ง
อนุญาตให้ผู้ใช้ลืมลิงก์สัญลักษณ์ไปยังไดเร็กทอรี) ล้างโดย
ค่าเริ่มต้น. โปรดทราบว่าการตั้งค่าตัวเลือกนี้ไม่มีผลกับค่าปัจจุบันของ
พารามิเตอร์ PWD; เพียง cd คำสั่งเปลี่ยน PWD ดู cd และ รหัสผ่าน คำสั่ง
ด้านบนสำหรับรายละเอียดเพิ่มเติม

-o ท่อล้มเหลว
ทำให้สถานะทางออกของไปป์ไลน์ (ก่อนที่จะเสริมตรรกะ) the
ระดับข้อผิดพลาดที่ไม่ใช่ศูนย์ขวาสุด หรือศูนย์หากคำสั่งทั้งหมดออกจากศูนย์ด้วยศูนย์

-o POSIX
ประพฤติตนให้ใกล้เคียงกับมาตรฐานมากขึ้น (ดู POSIX โหมด เพื่อดูรายละเอียด) โดยอัตโนมัติ
เปิดใช้งานหากชื่อพื้นฐานของการเรียกใช้เชลล์ขึ้นต้นด้วย “sh” และ this
รวบรวมคุณสมบัติการตรวจจับอัตโนมัติ (ไม่ใช่ใน MirBSD) เป็นผลข้างเคียงการตั้งค่า
ธงนี้ปิดลง รั้งขยาย โหมดซึ่งสามารถเปิดใหม่ได้ด้วยตนเองและ
sh โหมด (เว้นแต่จะเปิดใช้งานทั้งสองอย่างพร้อมกัน)

-o sh
ทำให้สามารถ bin / sh / (kludge) โหมด (ดู SH โหมด). เปิดใช้งานโดยอัตโนมัติหาก
ชื่อฐานของการเรียกใช้เชลล์เริ่มต้นด้วย “sh” และคุณสมบัติการตรวจจับอัตโนมัตินี้
ถูกคอมไพล์ใน (ไม่ใช่ใน MirBSD) ผลข้างเคียง การตั้งค่าสถานะนี้จะปิด
รั้งขยาย โหมดซึ่งสามารถเปิดใหม่ได้ด้วยตนเองและ POSIX โหมด (เว้นแต่
ทั้งสองเปิดใช้งานพร้อมกัน)

-o vi
ทำให้สามารถ vi(1)-เหมือนการแก้ไขบรรทัดคำสั่ง (เชลล์แบบโต้ตอบเท่านั้น) ดู Vi
การแก้ไข โหมด สำหรับเอกสารและข้อจำกัด

-o vi-esccomplete
ในการแก้ไขบรรทัดคำสั่ง vi ให้ทำคำสั่งและชื่อไฟล์ให้สมบูรณ์เมื่อทำการ Escape (^[)
เข้าสู่โหมดคำสั่ง

-o vi-แท็บสมบูรณ์
ในการแก้ไขบรรทัดคำสั่ง vi ให้ทำคำสั่งและชื่อไฟล์ให้สมบูรณ์เมื่อแท็บ (^I) is
เข้าสู่โหมดแทรก นี่คือค่าเริ่มต้น

-o วิรา
ไม่มีผลอะไร. ในกะลาเดิมเว้นแต่ วิรา ถูกตั้งค่าคำสั่ง vi-
โหมดบรรทัดจะช่วยให้ TTY(4) คนขับทำงานจนกว่าจะป้อน ESC (^[)
มช อยู่ในโหมด viraw เสมอ

อ็อพชันเหล่านี้ยังสามารถใช้เมื่อเรียกใช้เชลล์ ชุดปัจจุบันของ
ตัวเลือก (ที่มีชื่อตัวอักษรเดียว) สามารถพบได้ในพารามิเตอร์ '$-' ชุด -o กับ
ไม่มีชื่อตัวเลือกใดจะแสดงตัวเลือกทั้งหมดและไม่ว่าจะเปิดหรือปิด ชุด +o จะ
พิมพ์ชื่อแบบยาวของตัวเลือกทั้งหมดที่เปิดอยู่ ในรุ่นต่อๆ ไป ชุด
+o จะปฏิบัติตาม POSIX และพิมพ์คำสั่งเพื่อกู้คืนตัวเลือกปัจจุบัน
แทน.

อาร์กิวเมนต์ที่เหลือ หากมี เป็นพารามิเตอร์ตำแหน่งและกำหนดตามลำดับ to
พารามิเตอร์ตำแหน่ง (เช่น $1, $2 เป็นต้น) ถ้าตัวเลือกลงท้ายด้วย '-' และนั่น
ไม่มีอาร์กิวเมนต์ที่เหลืออยู่ พารามิเตอร์ตำแหน่งทั้งหมดจะถูกล้าง หากไม่มีตัวเลือกหรือ
อาร์กิวเมนต์จะได้รับ ค่าของชื่อทั้งหมดจะถูกพิมพ์ สำหรับไม่ทราบประวัติศาสตร์
เหตุผล ตัวเลือก '-' เดียวได้รับการปฏิบัติเป็นพิเศษ – จะล้างทั้ง -v และ -x
ตัวเลือก

เปลี่ยน [จำนวน]
พารามิเตอร์ตำแหน่ง จำนวน+ 1, จำนวน+2 เป็นต้น ถูกเปลี่ยนชื่อเป็น '1', '2' เป็นต้น
จำนวน ค่าเริ่มต้นเป็น 1

นอนหลับ วินาที
ระงับการดำเนินการสำหรับค่าต่ำสุดของ วินาที ระบุเป็นค่าทศนิยมบวก
ด้วยส่วนเศษส่วนเสริม การส่งสัญญาณอาจดำเนินการต่อไปก่อนหน้านี้

แหล่ง ไฟล์ [หาเรื่อง ...]
Like . (“จุด”) ยกเว้นว่าไดเร็กทอรีการทำงานปัจจุบันถูกผนวกเข้ากับการค้นหา
เส้นทาง (GNU ทุบตี ส่วนขยาย).

แขวน
หยุดเชลล์ราวกับว่าได้รับอักขระระงับจากเทอร์มินัล มันคือ
ไม่สามารถระงับเชลล์การเข้าสู่ระบบได้เว้นแต่ว่ากระบวนการหลักเป็นสมาชิกของ
เทอร์มินัลเซสชันเดียวกันแต่เป็นสมาชิกของกลุ่มกระบวนการอื่น เป็นนายพล
กฎ หากเชลล์เริ่มต้นโดยเชลล์อื่นหรือผ่าน su(1) สามารถระงับได้

ทดสอบ การแสดงออก
[ การแสดงออก ]
ทดสอบ ประเมินค่า การแสดงออก และส่งกลับสถานะเป็นศูนย์หากเป็นจริง 1 หากเป็นเท็จหรือมากกว่า
มากกว่า 1 หากมีข้อผิดพลาด โดยปกติจะใช้เป็นคำสั่งเงื่อนไขของ if และ
ในขณะที่ งบ. มีการติดตามลิงก์สัญลักษณ์สำหรับทุกคน ไฟล์ นิพจน์ยกเว้น -h และ
-L.

มีนิพจน์พื้นฐานต่อไปนี้:

-a ไฟล์ ไฟล์ ที่มีอยู่

-b ไฟล์ ไฟล์ เป็นอุปกรณ์พิเศษบล็อก

-c ไฟล์ ไฟล์ เป็นอุปกรณ์พิเศษของตัวละคร

-d ไฟล์ ไฟล์ เป็นไดเร็กทอรี

-e ไฟล์ ไฟล์ ที่มีอยู่

-f ไฟล์ ไฟล์ เป็นไฟล์ปกติ

-G ไฟล์ ไฟล์กลุ่มของคือ ID กลุ่มที่มีประสิทธิภาพของเชลล์

-g ไฟล์ ไฟล์โหมดของมีการตั้งค่าบิต setgid

-H ไฟล์ ไฟล์ เป็นไดเร็กทอรีที่ขึ้นกับบริบท (มีประโยชน์เฉพาะใน HP-UX)

-h ไฟล์ ไฟล์ เป็นลิงค์สัญลักษณ์

-k ไฟล์ ไฟล์โหมดของมี เหนียว(8) ชุดบิต

-L ไฟล์ ไฟล์ เป็นลิงค์สัญลักษณ์

-O ไฟล์ ไฟล์เจ้าของคือ ID ผู้ใช้ที่มีประสิทธิภาพของเชลล์

-o ตัวเลือก เปลือก ตัวเลือก ถูกตั้งค่า (ดู ชุด คำสั่งด้านบนสำหรับรายการ
ตัวเลือก). เป็นส่วนขยายที่ไม่ได้มาตรฐานหากตัวเลือกเริ่มต้นด้วย
a '!' การทดสอบถูกปฏิเสธ การทดสอบล้มเหลวเสมอถ้า ตัวเลือก
ไม่มีอยู่จริง (ดังนั้น [ -o foo -o -o !foo ] คืนค่า true if และ only
ถ้าตัวเลือก foo มีอยู่) สามารถทำได้เช่นเดียวกันกับ [ -o ?foo ]
เหมือนใน AT&T UNIX ksh93. ตัวเลือก ยังสามารถเป็นธงสั้นนำโดย
'-' หรือ '+' (ไม่มีการปฏิเสธเชิงตรรกะ) เช่น '-x' หรือ '+x'
แทนที่จะเป็น 'xtrace'

-p ไฟล์ ไฟล์ เป็นชื่อไปป์ (FIFO)

-r ไฟล์ ไฟล์ มีอยู่และสามารถอ่านได้

-S ไฟล์ ไฟล์ คือ ยูนิกซ์(4)-ซ็อกเก็ตโดเมน

-s ไฟล์ ไฟล์ ไม่ว่างเปล่า

-t fd ตัวอธิบายไฟล์ fd คือ TTY(4) อุปกรณ์

-u ไฟล์ ไฟล์โหมดของมีการตั้งค่าบิต setuid

-w ไฟล์ ไฟล์ มีอยู่และสามารถเขียนได้

-x ไฟล์ ไฟล์ มีอยู่และดำเนินการได้

file1 -nt file2 file1 ใหม่กว่า file2 or file1 มีอยู่และ file2 ไม่.

file1 -อต file2 file1 มีอายุมากกว่า file2 or file2 มีอยู่และ file1 ไม่.

file1 -เอฟ file2 file1 เป็นไฟล์เดียวกับ file2.

เชือก เชือก มีความยาวไม่เป็นศูนย์

-n เชือก เชือก ไม่ว่างเปล่า

-z เชือก เชือก มันว่างเปล่า.

เชือก = เชือก สตริงมีค่าเท่ากัน

เชือก == เชือก สตริงมีค่าเท่ากัน

เชือก > เชือก ตัวถูกดำเนินการสตริงแรกมีค่ามากกว่าตัวถูกดำเนินการสตริงที่สอง

เชือก < เชือก ตัวถูกดำเนินการสตริงแรกน้อยกว่าตัวถูกดำเนินการสตริงที่สอง

เชือก != เชือก สตริงไม่เท่ากัน

จำนวน -เช่น จำนวน ตัวเลขเปรียบเทียบเท่ากัน

จำนวน - หนึ่ง จำนวน ตัวเลขเปรียบเทียบไม่เท่ากัน

จำนวน -ge จำนวน ตัวเลขเปรียบเทียบมากกว่าหรือเท่ากับ

จำนวน -gt จำนวน ตัวเลขเปรียบเทียบมากกว่า

จำนวน -NS จำนวน ตัวเลขเปรียบเทียบน้อยกว่าหรือเท่ากับ

จำนวน -ล จำนวน ตัวเลขเปรียบเทียบน้อยกว่า

นิพจน์พื้นฐานข้างต้น ซึ่งตัวดำเนินการเอกนารีมีความสำคัญเหนือไบนารี
โอเปอเรเตอร์ อาจรวมกับโอเปอเรเตอร์ต่อไปนี้ (เรียงตามลำดับที่เพิ่มขึ้น
ของลำดับความสำคัญ):

expr -o expr ตรรกะ OR
expr -a expr ตรรกะและ
! expr ตรรกะไม่
( expr ) การจัดกลุ่ม

โปรดทราบว่าตัวเลขจริงๆ แล้วอาจเป็นนิพจน์ทางคณิตศาสตร์ เช่น คณิตศาสตร์
เทอมหรือชื่อของตัวแปรจำนวนเต็ม:

x=1; [ "x" -eq 1 ] ประเมินเป็นจริง

โปรดทราบว่ามีการใช้กฎพิเศษบางอย่าง (ได้รับความอนุเคราะห์จาก POSIX) หากจำนวน
ข้อโต้แย้งถึง ทดสอบ หรือในวงเล็บ [ ... ] น้อยกว่าห้า: ถ้านำ '!'
อาร์กิวเมนต์สามารถถอดออกได้เพื่อให้เหลืออาร์กิวเมนต์เพียงหนึ่งถึงสามอาร์กิวเมนต์ จากนั้น
ดำเนินการเปรียบเทียบที่ต่ำกว่า (ขอบคุณ XSI) วงเล็บ \( ... \) สี่ล่างและ
รูปแบบอาร์กิวเมนต์สามรูปแบบเป็นอาร์กิวเมนต์สองและหนึ่งตามลำดับ สามข้อโต้แย้ง
รูปแบบสุดท้ายชอบการดำเนินการแบบไบนารี ตามด้วยการลบล้างและวงเล็บ
ลดระดับ; รูปแบบอาร์กิวเมนต์สองและสี่ชอบการปฏิเสธตามด้วยวงเล็บ NS
รูปแบบอาร์กิวเมนต์เดียวมีความหมายเสมอ -n.

หมายเหตุ: ข้อผิดพลาดทั่วไปคือการใช้ “if [ $foo = bar ]” ซึ่งล้มเหลวหากพารามิเตอร์ “foo”
เป็น NULL หรือ unset หากมีช่องว่างในตัว (เช่น IFS octets) หรือถ้าเป็น unary
ตัวดำเนินการเช่น '!' หรือ '-n'. ใช้การทดสอบเช่น “if [ x"$foo" = x"bar" ]” แทน หรือ the
ตัวดำเนินการวงเล็บคู่ “ถ้า [[ $foo = bar ]]” หรือเพื่อหลีกเลี่ยงการจับคู่รูปแบบ (ดู [[
ด้านบน): “ถ้า [[ $foo = "$bar" ]]”

พื้นที่ [[ ... ]] construct ไม่เพียงแต่มีความปลอดภัยในการใช้งานเท่านั้น แต่ยังเร็วกว่าอีกด้วย

เวลา [-p] [ท่อ]
ถ้า ท่อ จะได้รับรายงานเวลาที่ใช้ในการดำเนินการไปป์ไลน์ ถ้าไม่
ไปป์ไลน์จะได้รับ จากนั้นผู้ใช้และเวลาของระบบที่ใช้โดยเชลล์เอง และทั้งหมด
มีการรายงานคำสั่งที่รันตั้งแต่เริ่มทำงาน เวลาที่รายงานคือ
เวลาจริง (เวลาที่ผ่านไปตั้งแต่ต้นจนจบ) เวลา CPU ของผู้ใช้ (เวลาที่ใช้ไป
ทำงานในโหมดผู้ใช้) และเวลา CPU ของระบบ (เวลาที่ใช้ในโหมดเคอร์เนล)
เวลาถูกรายงานเป็นข้อผิดพลาดมาตรฐาน รูปแบบของผลลัพธ์คือ:

0m0.00s จริง 0m0.00s ผู้ใช้ 0m0.00s ระบบ

ถ้า -p ตัวเลือกจะได้รับผลลัพธ์ที่ยาวกว่าเล็กน้อย:

0.00 จริง
ผู้ใช้ 0.00
ระบบ 0.00

เป็นข้อผิดพลาดในการระบุ -p ตัวเลือกเว้นแต่ ท่อ เป็นคำสั่งง่ายๆ

การเปลี่ยนเส้นทางอย่างง่ายของข้อผิดพลาดมาตรฐานไม่ส่งผลต่อผลลัพธ์ของ เวลา คำสั่ง:

$ เวลานอน 1 2>afile
$ { เวลานอน 1; } 2>ไฟล์

เวลาสำหรับคำสั่งแรกไม่ไปที่ "afile" แต่เวลาสำหรับคำสั่งที่สองจะไปที่ "afile"

ครั้ง พิมพ์จำนวนผู้ใช้และเวลาที่ระบบใช้ทั้งโดยเชลล์และโดยกระบวนการ
ว่าเปลือกเริ่มต้นซึ่งได้ออก รูปแบบของผลลัพธ์คือ:

0m0.00s 0m0.00s
0m0.00s 0m0.00s

กับดัก n [สัญญาณ ...]
หากตัวถูกดำเนินการแรกเป็นจำนวนเต็มที่ไม่มีเครื่องหมายทศนิยม สิ่งนี้จะรีเซ็ตสัญญาณที่ระบุทั้งหมด
สำหรับการดำเนินการเริ่มต้น กล่าวคือ เหมือนกับการโทร กับดัก ด้วยเครื่องหมายลบ ('-') as
จัดการตามด้วยอาร์กิวเมนต์ (n [สัญญาณ ...]) ซึ่งทั้งหมดถือว่าเป็น
สัญญาณ

กับดัก [จัดการ สัญญาณ ...]
ตั้งค่าตัวจัดการกับดักที่จะถูกดำเนินการเมื่อใด ๆ ที่ระบุ สัญญาณเป็น
ที่ได้รับ จัดการ เป็นสตริงว่าง แสดงว่าสัญญาณต้องเป็น
ละเว้น เครื่องหมายลบ ('-') ระบุว่าการดำเนินการเริ่มต้นจะถูกดำเนินการสำหรับ
สัญญาณ (ดู สัญญาณ(3)) หรือสตริงที่มีคำสั่งเชลล์ที่จะดำเนินการที่
โอกาสแรก (เช่น เมื่อคำสั่งปัจจุบันเสร็จสิ้น หรือก่อนพิมพ์
ข้อความแจ้ง PS1) ถัดไป) หลังจากรับสัญญาณอย่างใดอย่างหนึ่ง สัญญาณ เป็นชื่อของ a
สัญญาณ (เช่น PIPE หรือ ALRM) หรือหมายเลขของสัญญาณ (ดู ฆ่า -l คำสั่ง
ข้างบน).

มีสัญญาณพิเศษสองแบบ: EXIT (เรียกอีกอย่างว่า 0) ซึ่งจะดำเนินการเมื่อ
เชลล์กำลังจะออก และ ERR ซึ่งถูกดำเนินการหลังจากเกิดข้อผิดพลาด ข้อผิดพลาดคือ
สิ่งที่จะทำให้เปลือกออกถ้า ชุด -e or ชุด -o ผิดพลาด ตัวเลือก
ถูกตั้งค่า ตัวจัดการ EXIT ถูกดำเนินการในสภาพแวดล้อมของการดำเนินการล่าสุด
คำสั่ง

โปรดทราบว่า สำหรับเชลล์ที่ไม่โต้ตอบ ไม่สามารถเปลี่ยนตัวจัดการกับดักสำหรับสัญญาณ
ที่ถูกละเลยเมื่อเปลือกเริ่มทำงาน

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

กับดัก DEBUG ของ Korn shell ดั้งเดิมและการจัดการกับดัก ERR และ EXIT ใน
ฟังก์ชั่นยังไม่ได้ใช้งาน

จริง คำสั่งที่ออกโดยมีค่าเป็นศูนย์

ทั่วโลก [[+-alpnrtUux] [-L[n--R[n--Z[n--i[n- -f [-ทัก-ชื่อ [=ความคุ้มค่า] ...]
เรียงพิมพ์ [[+-alpnrtUux] [-LRZ[n--i[n- -f [-ทัก-ชื่อ [=ความคุ้มค่า] ...]
แสดงหรือตั้งค่าแอตทริบิวต์พารามิเตอร์ ไม่มี ชื่อ อาร์กิวเมนต์ คุณสมบัติพารามิเตอร์
จะแสดง; หากไม่มีการใช้ตัวเลือก คุณลักษณะปัจจุบันของพารามิเตอร์ทั้งหมดจะเป็น
พิมพ์เป็น เรียงพิมพ์ คำสั่ง; หากมีตัวเลือก (หรือ '-' โดยไม่มีตัวอักษรตัวเลือก)
พารามิเตอร์ทั้งหมดและค่าที่มีแอตทริบิวต์ที่ระบุจะถูกพิมพ์ ถ้าตัวเลือก
มีการแนะนำด้วย '+' ค่าพารามิเตอร์จะไม่ถูกพิมพ์

If ชื่อ อาร์กิวเมนต์ได้รับการตั้งค่าแอตทริบิวต์ของพารามิเตอร์ที่มีชื่อ (-) หรือ
เคลียร์ (+). ค่าพารามิเตอร์สามารถเลือกระบุได้ สำหรับ ชื่อ[*], NS
การเปลี่ยนแปลงมีผลกับอาร์เรย์ทั้งหมด และไม่สามารถระบุค่าได้

If เรียงพิมพ์ ถูกใช้ภายในฟังก์ชัน พารามิเตอร์ใด ๆ ที่ระบุจะถูกแปลเป็นภาษาท้องถิ่น นี้
ไม่ได้ทำโดยสิ่งที่เหมือนกันเป็นอย่างอื่น ทั่วโลก. หมายเหตุ: นี่หมายความว่า มช 's ทั่วโลก
คำสั่งคือ ไม่ เทียบเท่ากับภาษาโปรแกรมอื่น ๆ เนื่องจากไม่อนุญาต a
ฟังก์ชันที่เรียกจากฟังก์ชันอื่นเพื่อเข้าถึงพารามิเตอร์ที่ขอบเขตทั่วโลกอย่างแท้จริง
แต่จะป้องกันไม่ให้มีการเข้าถึงในขอบเขตท้องถิ่นเท่านั้น

เมื่อ -f ถูกนำมาใช้, เรียงพิมพ์ ทำงานเกี่ยวกับคุณลักษณะของฟังก์ชัน เช่นเดียวกับ
พารามิเตอร์ ถ้าไม่ใช่ ชื่อ อาร์กิวเมนต์ได้รับ ฟังก์ชันถูกแสดงรายการด้วยค่าของพวกเขา
(เช่นคำจำกัดความ) เว้นแต่ตัวเลือกจะถูกนำมาใช้กับ '+' ซึ่งในกรณีนี้มีเพียง
มีการรายงานชื่อฟังก์ชัน

-a แอตทริบิวต์อาร์เรย์ที่จัดทำดัชนี

-f โหมดฟังก์ชัน แสดงหรือตั้งค่าฟังก์ชันและแอตทริบิวต์แทน
พารามิเตอร์

-i[n] คุณลักษณะจำนวนเต็ม n ระบุฐานที่จะใช้เมื่อแสดงจำนวนเต็ม
(หากไม่ระบุ จะใช้ฐานที่กำหนดในงานแรก)
พารามิเตอร์ที่มีแอตทริบิวต์นี้อาจกำหนดค่าที่มีเลขคณิต
นิพจน์

-L[n] แอตทริบิวต์ชิดซ้าย n ระบุความกว้างของฟิลด์ ถ้า n ไม่ได้ระบุ
ความกว้างปัจจุบันของพารามิเตอร์ (หรือความกว้างของค่าที่กำหนดครั้งแรก)
ถูกนำมาใช้. ช่องว่างนำหน้า (และศูนย์ ถ้าใช้กับ -Z ตัวเลือก) is
ปล้น หากจำเป็น ค่าจะถูกตัดทอนหรือเว้นวรรคให้พอดี
ความกว้างของสนาม

-l แอตทริบิวต์ตัวพิมพ์เล็ก อักขระตัวพิมพ์ใหญ่ทั้งหมดในค่าจะถูกแปลงเป็น
ตัวพิมพ์เล็ก (ใน Korn เชลล์ดั้งเดิม พารามิเตอร์นี้หมายถึง “จำนวนเต็มยาว”
เมื่อใช้ร่วมกับ -i ตัวเลือก.)

-n สร้างตัวแปรที่ถูกผูกไว้ (การอ้างอิงชื่อ): การเข้าถึงตัวแปรใดๆ ก็ได้ ชื่อ
จะเข้าถึงตัวแปร ความคุ้มค่า ในขอบเขตปัจจุบัน (ซึ่งแตกต่างจาก
AT&T UNIX ksh93!) แทนที่. ยังแตกต่างจาก AT&T UNIX ksh93 คือ
ความคุ้มค่า ถูกประเมินอย่างเกียจคร้านในขณะนั้น ชื่อ มีการเข้าถึง สามารถใช้โดย
ฟังก์ชันเพื่อเข้าถึงตัวแปรที่มีชื่อส่งผ่านเป็นพารามิเตอร์แทน
ของการใช้งาน ประเมิน.

-p พิมพ์เสร็จ เรียงพิมพ์ คำสั่งที่ใช้สร้างแอตทริบิวต์ใหม่ได้
และค่าพารามิเตอร์

-R[n] ตั้งค่าแอตทริบิวต์ให้ถูกต้อง n ระบุความกว้างของฟิลด์ ถ้า n ไม่ใช่
ระบุ ความกว้างปัจจุบันของพารามิเตอร์ (หรือความกว้างของค่าแรก
ใช้ค่าที่กำหนด) ช่องว่างต่อท้ายถูกถอดออก ในกรณีที่จำเป็น,
ค่าจะถูกถอดอักขระนำหรือช่องว่างเพื่อสร้าง
พอดีกับความกว้างของสนาม

-r แอตทริบิวต์แบบอ่านอย่างเดียว พารามิเตอร์ที่มีแอตทริบิวต์นี้ไม่สามารถกำหนดให้กับ
หรือไม่ได้ตั้งค่า เมื่อตั้งค่าแอตทริบิวต์นี้แล้ว จะไม่สามารถปิดได้

-t แอตทริบิวต์แท็ก ไม่มีความหมายต่อเปลือก ไว้สำหรับใช้งานแอพพลิเคชั่น

สำหรับฟังก์ชั่น -t เป็นแอตทริบิวต์การติดตาม เมื่อทำหน้าที่ตามรอย
แอตทริบิวต์จะถูกดำเนินการ the เอ็กซ์เทรซ (-x) ตัวเลือกเชลล์ถูกเปลี่ยนชั่วคราว
บน

-U แอตทริบิวต์จำนวนเต็มไม่ได้ลงนาม จำนวนเต็มถูกพิมพ์เป็นค่าที่ไม่ได้ลงนาม (รวม
กับ -i ตัวเลือก). ตัวเลือกนี้ไม่อยู่ใน Korn เชลล์ดั้งเดิม

-u แอตทริบิวต์ตัวพิมพ์ใหญ่ อักขระตัวพิมพ์เล็กทั้งหมดในค่าจะถูกแปลงเป็น
ตัวพิมพ์ใหญ่ (ใน Korn เชลล์ดั้งเดิม พารามิเตอร์นี้หมายถึง “unsigned
จำนวนเต็ม” เมื่อใช้กับ -i ตัวเลือกซึ่งหมายถึงตัวพิมพ์ใหญ่จะ
ห้ามใช้สำหรับฐานที่มากกว่า 10 ดู -U ตัวเลือก.)

สำหรับฟังก์ชั่น -u เป็นแอตทริบิวต์ที่ไม่ได้กำหนด ดู ฟังก์ชั่น ด้านบนสำหรับ
ผลกระทบของสิ่งนี้

-x แอตทริบิวต์การส่งออก พารามิเตอร์ (หรือฟังก์ชัน) อยู่ในสภาพแวดล้อมของ
คำสั่งที่ดำเนินการใด ๆ ฟังก์ชันที่ส่งออกยังไม่ได้ใช้งาน

-Z[n] คุณลักษณะการเติมศูนย์ ถ้าไม่รวมกับ -L, นี้ก็เหมือนกับ -Rยกเว้น
การใช้ช่องว่างภายในเป็นศูนย์แทนช่องว่างภายใน สำหรับจำนวนเต็ม จำนวน
แทนฐานเป็นเบาะ

ถ้าข้อใดข้อหนึ่ง -i, -L, -l, -R, -U, -u,หรือ -Z ตัวเลือกมีการเปลี่ยนแปลง อื่น ๆ ทั้งหมดจากนี้
ชุดจะถูกล้าง เว้นแต่จะได้รับในบรรทัดคำสั่งเดียวกัน

ulimit [-aBCcdefHilMmnOPpqrSsTtVvw] [ความคุ้มค่า]
แสดงหรือกำหนดขีดจำกัดของกระบวนการ หากไม่มีการใช้ตัวเลือก ขนาดไฟล์จะจำกัด (-f) คือ
สันนิษฐาน ความคุ้มค่าหากระบุไว้อาจเป็นนิพจน์เลขคณิตหรือคำว่า
"ไม่ จำกัด". ขีดจำกัดส่งผลต่อเชลล์และกระบวนการใดๆ ที่สร้างโดยเชลล์
หลังจากกำหนดวงเงินแล้ว โปรดทราบว่าบางระบบอาจไม่อนุญาตให้มีการจำกัดเป็น
เพิ่มขึ้นเมื่อตั้งค่าแล้ว นอกจากนี้ โปรดทราบด้วยว่าประเภทของขีดจำกัดที่ใช้ได้คือ system
ขึ้นอยู่กับ – บางระบบมีเพียง -f ขีด จำกัด

-a แสดงขีดจำกัดทั้งหมด เว้นแต่ -H ถูกใช้ ขีดจำกัดซอฟต์จะปรากฏขึ้น

-B n ตั้งค่าขนาดบัฟเฟอร์ซ็อกเก็ตเป็น n กิบิไบต์

-C n ตั้งค่าจำนวนเธรดที่แคชไว้เป็น n.

-c n กำหนดขนาดจำกัดของ n บล็อกขนาดของแกนดัมพ์

-d n กำหนดขนาดจำกัดของ n กิโลไบต์กับขนาดของพื้นที่ข้อมูล

-e n ตั้งค่าความสวยสูงสุดเป็น n.

-f n กำหนดขนาดจำกัดของ n บล็อกไฟล์ที่เขียนโดยเชลล์และลูกของมัน
กระบวนการ (ไฟล์ขนาดใดก็ได้สามารถอ่านได้)

-H ตั้งค่าขีดจำกัดฮาร์ดเท่านั้น (ค่าเริ่มต้นคือการตั้งค่าทั้งขีดจำกัดฮาร์ดและซอฟต์)

-i n ตั้งค่าจำนวนสัญญาณที่รอดำเนินการเป็น n.

-l n กำหนดขีดจำกัดของ n กิโลไบต์ต่อจำนวนหน่วยความจำกายภาพที่ถูกล็อก (แบบมีสาย)

-M n ตั้งค่าหน่วยความจำที่ล็อค AIO เป็น n กิบิไบต์

-m n กำหนดขีดจำกัดของ n กิโลไบต์ตามจำนวนหน่วยความจำกายภาพที่ใช้

-n n กำหนดขีดจำกัดของ n file descriptor ที่สามารถเปิดได้ในครั้งเดียว

-O n ตั้งค่าจำนวนการดำเนินการ AIO เป็น n.

-P n จำกัดจำนวนเธรดต่อกระบวนการที่ n.

-p n กำหนดขีดจำกัดของ n กระบวนการที่ผู้ใช้สามารถเรียกใช้ได้ตลอดเวลา

-q n จำกัดขนาดของคิวข้อความ POSIX ไว้ที่ n ไบต์

-r n ตั้งค่าลำดับความสำคัญตามเวลาจริงสูงสุดเป็น n.

-S ตั้งค่าขีดจำกัดซอฟต์เท่านั้น (ค่าเริ่มต้นคือตั้งค่าทั้งขีดจำกัดแบบแข็งและแบบอ่อน)

-s n กำหนดขนาดจำกัดของ n กิโลไบต์กับขนาดของพื้นที่สแต็ก

-T n กำหนดระยะเวลาของ n วินาทีจริงที่จะใช้ในแต่ละกระบวนการ

-t n กำหนดระยะเวลาของ n CPU วินาทีที่ใช้ในโหมดผู้ใช้ที่แต่ละคนใช้
กระบวนการ

-V n ตั้งค่าจำนวนมอนิเตอร์ vnode บนไฮกุเป็น n.

-v n กำหนดขีดจำกัดของ n kibibytes กับจำนวนหน่วยความจำเสมือน (พื้นที่ที่อยู่)
มือสอง

-w n กำหนดขีดจำกัดของ n กิโลไบต์กับจำนวนพื้นที่สว็อปที่ใช้

เท่าที่ ulimit เป็นห่วง บล็อกคือ 512 ไบต์

อูมาสก์ [-S] [หน้ากาก]
แสดงหรือตั้งค่ารูปแบบการอนุญาตไฟล์หรือ umask (ดู อูมาสก์(2)). ถ้า -S
ใช้ตัวเลือก มาสก์ที่แสดงหรือตั้งค่าเป็นสัญลักษณ์ มิฉะนั้นจะเป็นเลขฐานแปด
จำนวน.

มาสก์สัญลักษณ์ก็เหมือนหน้ากากที่ใช้โดย chmod(1). เมื่อใช้จะอธิบายว่าอะไร
อาจมีการอนุญาต (ตรงข้ามกับมาสก์ฐานแปดซึ่งบิตชุดหมายถึง
บิตที่เกี่ยวข้องจะต้องถูกล้าง) ตัวอย่างเช่น “ug=rwx,o=” ตั้งค่ามาสก์เป็น
ไฟล์จะไม่สามารถอ่าน เขียน หรือเรียกใช้งานได้โดย “ผู้อื่น” และเทียบเท่า
(ในระบบส่วนใหญ่) กับมาสก์ฐานแปด “007”

ยูนาเลีย [-adt] [ชื่อ ...]
นามแฝงสำหรับชื่อที่กำหนดจะถูกลบออก ถ้า -a ใช้ตัวเลือก นามแฝงทั้งหมด
จะถูกลบออก ถ้า -t or -d ใช้ตัวเลือกการดำเนินการที่ระบุจะดำเนินการ
ออกตามชื่อแทนของการติดตามหรือไดเรกทอรีตามลำดับ

ยกเลิกการตั้งค่า [-fv] พารามิเตอร์ ...
ยกเลิกการตั้งค่าพารามิเตอร์ที่มีชื่อ (-v, ค่าเริ่มต้น) หรือฟังก์ชัน (-f). ด้วย พารามิเตอร์[*]
แอตทริบิวต์จะถูกเก็บไว้ เฉพาะค่าที่ไม่ถูกตั้งค่า

สถานะการออกจะไม่เป็นศูนย์หากพารามิเตอร์ใดมีแอตทริบิวต์แบบอ่านอย่างเดียว
ตั้งค่าศูนย์เป็นอย่างอื่น

รอ [งาน ...]
รอให้งานที่ระบุเสร็จสิ้น สถานะการออกของ รอ เป็นสิ่งสุดท้าย
งานที่ระบุ; ถ้างานสุดท้ายถูกฆ่าโดยสัญญาณ สถานะการออกคือ 128 + the
จำนวนสัญญาณ (ดู ฆ่า -l สถานะทางออก ข้างต้น); หากงานที่ระบุล่าสุดไม่สามารถ
ถูกพบ (เพราะไม่เคยมีอยู่หรือทำเสร็จแล้ว) สถานะการออกของ รอ
คือ 127 ดู การสัมภาษณ์ ควบคุม ด้านล่างสำหรับรูปแบบของ งาน. รอ จะกลับมาถ้าสัญญาณ
ซึ่งได้รับการตั้งค่ากับดักหรือหากสัญญาณ SIGHUP, SIGINT หรือ SIGQUIT
ได้รับ.

หากไม่มีการระบุตำแหน่งงาน รอ รอรับงานที่กำลังดำเนินการอยู่ทั้งหมด (ถ้ามี) ถึง
จบและออกจากสถานะเป็นศูนย์ หากเปิดใช้งานการตรวจสอบงาน การเสร็จสิ้น
สถานะของงานถูกพิมพ์ (ไม่ใช่กรณีที่มีการระบุงานอย่างชัดเจน)

ไหน [-พีวี] [ชื่อ ...]
ปราศจาก -v ตัวเลือกก็เหมือนกับ คำสั่ง -vยกเว้นจะไม่พิมพ์นามแฝง
เป็นคำสั่งนามแฝง กับ -v ตัวเลือกก็เหมือนกับ คำสั่ง -V. ใน
ทั้งสองกรณี -p ตัวเลือกต่างกัน: เส้นทางการค้นหาจะไม่ได้รับผลกระทบใน ไหนแต่
การค้นหาถูกจำกัดให้อยู่ในเส้นทาง

การสัมภาษณ์ ควบคุม
การควบคุมงานหมายถึงความสามารถของเชลล์ในการตรวจสอบและควบคุมงานที่เป็นกระบวนการหรือ
กลุ่มของกระบวนการที่สร้างขึ้นสำหรับคำสั่งหรือไปป์ไลน์ อย่างน้อยที่สุด เชลล์จะคอยติดตาม
ของสถานะของงานพื้นหลัง (เช่น แบบอะซิงโครนัส) ที่มีอยู่ในปัจจุบัน นี้
ข้อมูลสามารถแสดงได้โดยใช้ปุ่ม ตำแหน่งงาน คำสั่ง หากเปิดใช้งานการควบคุมงานอย่างเต็มที่
(โดยใช้ ชุด -m or ชุด -o หน้าจอ) เช่นเดียวกับเชลล์แบบโต้ตอบ กระบวนการของงาน
ถูกจัดอยู่ในกลุ่มกระบวนการของตนเอง งานเบื้องหน้าสามารถหยุดได้โดยพิมพ์ suspend
อักขระจากเทอร์มินัล (ปกติ ^Z) งานสามารถเริ่มต้นใหม่ได้ทั้งในเบื้องหน้าหรือ
พื้นหลังโดยใช้ fg และ bg คำสั่งและสถานะของเทอร์มินัลจะถูกบันทึกหรือกู้คืน
เมื่องานพื้นหน้าหยุดหรือเริ่มใหม่ตามลำดับ

โปรดทราบว่าเฉพาะคำสั่งที่สร้างกระบวนการ (เช่น คำสั่งแบบอะซิงโครนัส, subshell
คำสั่งและคำสั่งที่ไม่ใช่ฟังก์ชันในตัว) สามารถหยุดได้ คำสั่งเช่น อ่าน ไม่ได้
เป็น

เมื่อมีการสร้างงาน จะมีการกำหนดหมายเลขงาน สำหรับเชลล์แบบโต้ตอบ ตัวเลขนี้คือ
พิมพ์อยู่ภายใน “[..]” ตามด้วย ID กระบวนการของกระบวนการในงานเมื่อ
มีการรันคำสั่งแบบอะซิงโครนัส อาจมีการอ้างถึงงานใน bg, fg, ตำแหน่งงาน, ฆ่าและ รอ
คำสั่งโดย ID กระบวนการของกระบวนการสุดท้ายในไพพ์ไลน์คำสั่ง (ตามที่เก็บไว้ใน
$! พารามิเตอร์) หรือโดยการนำหน้าหมายเลขงานด้วยเครื่องหมายเปอร์เซ็นต์ ('%') เปอร์เซ็นต์อื่น ๆ
ลำดับยังสามารถใช้เพื่ออ้างถึงงาน:

%+ | %% | % งานที่หยุดล่าสุด หรือ ถ้าไม่มีงานที่หยุด ให้เก่าที่สุด
งานวิ่ง.

%- งานที่จะ %+ งานถ้าหลังไม่มีอยู่

%n งานที่มีเบอร์งาน n.

%?เชือก งานด้วยคำสั่งที่มีสตริง เชือก (ข้อผิดพลาดเกิดขึ้นถ้า
หลายงานเข้าคู่กัน)

%เชือก งานด้วยคำสั่งที่ขึ้นต้นด้วย string เชือก (ข้อผิดพลาดเกิดขึ้นถ้า
หลายงานเข้าคู่กัน)

เมื่องานเปลี่ยนสถานะ (เช่น งานพื้นหลังเสร็จสิ้นหรืองานพื้นหน้าถูกหยุด)
เชลล์พิมพ์ข้อมูลสถานะต่อไปนี้:

[จำนวน] ธง สถานะ คำสั่ง

ที่ไหน...

จำนวน คือหมายเลขงานของงาน

ธง เป็นอักขระ '+' หรือ '-' หากงานคือ %+ or %- งานตามลำดับหรือช่องว่าง
ถ้าไม่ใช่;

สถานะ ระบุสถานะปัจจุบันของงานและสามารถ:

เสร็จแล้ว [จำนวน]
งานออกแล้ว. จำนวน คือสถานะการออกของงานที่ละเว้น
ถ้าสถานะเป็นศูนย์

กำลังรัน งานไม่ได้หยุดหรือออก (โปรดทราบว่าการรันไม่ได้
จำเป็นต้องกินเวลา CPU – กระบวนการอาจถูกบล็อก
รอเหตุการณ์บางอย่าง)

หยุด [สัญญาณ]
งานถูกหยุดโดยระบุ สัญญาณ (หากไม่มีสัญญาณให้
งานถูกหยุดโดย SIGTSTP)

สัญญาณ-คำอธิบาย [“แกนถูกทิ้ง”]
งานถูกฆ่าโดยสัญญาณ (เช่น ความผิดพลาดของหน่วยความจำ, การวางสาย); ใช้ ฆ่า -l
สำหรับรายการคำอธิบายสัญญาณ ข้อความ "core dumped" หมายถึง
กระบวนการสร้างไฟล์หลัก

คำสั่ง เป็นคำสั่งที่สร้างกระบวนการ หากมีหลายกระบวนการใน
งานแต่ละขั้นตอนจะมีเส้นแสดง คำสั่ง และอาจจะเป็น สถานะถ้า
มันแตกต่างจากสถานะของกระบวนการก่อนหน้า

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

POSIX โหมด
เข้า ชุด -o POSIX โหมดจะทำให้ มช เพื่อให้สอดคล้องกับ POSIX มากขึ้นในสถานที่ต่างๆ
โดยค่าเริ่มต้นหรือความคิดเห็นต่างกัน สังเกตว่า มช จะยังคงดำเนินการกับ unsigned
เลขคณิต 32 บิต; ใช้ ลค ถ้าเลขคณิตบนโฮสต์ ยาว ชนิดข้อมูลพร้อม ISO C
จำเป็นต้องมีพฤติกรรมที่ไม่ได้กำหนด อ้างถึง ลค(1) หน้าคู่มือสำหรับรายละเอียด อื่นๆ มากที่สุด
ประวัติศาสตร์ AT&T UNIX ครับ- ความแตกต่างที่เข้ากันได้หรือความเห็นที่แตกต่างสามารถปิดการใช้งานได้โดยใช้สิ่งนี้
โหมด; เหล่านี้คือ:

· GNU ทุบตี การเปลี่ยนเส้นทาง I / O &>ไฟล์ ไม่รองรับอีกต่อไป

· ตัวอธิบายไฟล์ที่สร้างโดยการเปลี่ยนเส้นทาง I/O ได้รับการสืบทอดโดยกระบวนการลูก

· ตัวเลขที่มีเลขศูนย์นำหน้าจะถูกตีความว่าเป็นฐานแปด

· พื้นที่ เสียงสะท้อน builtin ไม่ได้ตีความแบ็กสแลชและรองรับเฉพาะตัวเลือกที่แน่นอนเท่านั้น "-n"

· ... (รายการไม่สมบูรณ์และอาจมีการเปลี่ยนแปลงสำหรับ R53)

SH โหมด
โหมดความเข้ากันได้; มีไว้สำหรับใช้กับสคริปต์ดั้งเดิมที่ไม่สามารถแก้ไขได้ง่าย NS
การเปลี่ยนแปลงมีดังนี้:

· GNU ทุบตี การเปลี่ยนเส้นทาง I / O &>ไฟล์ ไม่รองรับอีกต่อไป

· ตัวอธิบายไฟล์ที่สร้างโดยการเปลี่ยนเส้นทาง I/O ได้รับการสืบทอดโดยกระบวนการลูก

· พื้นที่ เสียงสะท้อน builtin ไม่ได้ตีความแบ็กสแลชและรองรับเฉพาะตัวเลือกที่แน่นอนเท่านั้น "-n"

· ... (รายการไม่สมบูรณ์และอาจมีการเปลี่ยนแปลงสำหรับ R53)

อินเตอร์แอคที อินพุต เส้น การแก้ไข
เชลล์รองรับสามโหมดของการอ่านบรรทัดคำสั่งจาก a TTY(4) ในการโต้ตอบ
เซสชั่นควบคุมโดย emacs, จีแมคและ vi ตัวเลือก (ส่วนใหญ่สามารถตั้งค่าได้ที่
ครั้งหนึ่ง). ค่าเริ่มต้นคือ emacs. โหมดแก้ไขสามารถตั้งค่าได้อย่างชัดเจนโดยใช้ปุ่ม ชุด ในตัว
หากไม่ได้เปิดใช้งานตัวเลือกเหล่านี้ เชลล์ก็จะอ่านบรรทัดโดยใช้ค่าปกติ TTY(4)
คนขับ. ถ้า emacs or จีแมค ตั้งค่าตัวเลือกแล้ว เชลล์อนุญาตให้แก้ไขไฟล์ . ได้เหมือน emac
สั่งการ; ในทำนองเดียวกัน ถ้า vi ตั้งค่าตัวเลือกแล้ว เชลล์อนุญาตให้แก้ไข .เหมือน vi
สั่งการ. โหมดเหล่านี้มีรายละเอียดอยู่ในส่วนต่อไปนี้

ในโหมดแก้ไขเหล่านี้ หากบรรทัดยาวเกินความกว้างของหน้าจอ (ดู COLUMNS
พารามิเตอร์) อักขระ '>', '+' หรือ '<' จะปรากฏในคอลัมน์สุดท้ายระบุว่า
มีอักขระเพิ่มเติมหลัง ก่อนและหลัง หรือก่อนตำแหน่งปัจจุบัน
ตามลำดับ บรรทัดจะถูกเลื่อนในแนวนอนตามความจำเป็น

เส้นที่กรอกเสร็จแล้วจะถูกผลักเข้าไปในประวัติ เว้นแต่จะขึ้นต้นด้วย IFS octet หรือ IFS
ช่องว่างสีขาวหรือเหมือนกับบรรทัดก่อนหน้า

Emacs การแก้ไข โหมด
เมื่อราคาของ emacs ตั้งค่าตัวเลือกแล้ว เปิดใช้งานการแก้ไขบรรทัดอินพุตแบบโต้ตอบ คำเตือน: โหมดนี้
แตกต่างจากโหมด emacs ใน Korn shell ดั้งเดิมเล็กน้อย ในโหมดนี้ต่างๆ
คำสั่งแก้ไข (โดยทั่วไปจะผูกกับอักขระควบคุมตั้งแต่หนึ่งตัวขึ้นไป) ทำให้เกิดการดำเนินการทันที
โดยไม่ต้องรอขึ้นบรรทัดใหม่ คำสั่งแก้ไขหลายคำสั่งถูกผูกไว้กับการควบคุมเฉพาะ
อักขระเมื่อเรียกใช้เชลล์ การเชื่อมโยงเหล่านี้สามารถเปลี่ยนได้โดยใช้ ผูก คำสั่ง

ต่อไปนี้คือรายการคำสั่งแก้ไขที่ใช้ได้ คำอธิบายแต่ละรายการเริ่มต้นด้วย
ชื่อของคำสั่ง ต่อท้ายด้วยโคลอน NS [n] (หากคำสั่งนำหน้าด้วย a
นับ); และคีย์ใดๆ ที่คำสั่งผูกไว้โดยค่าเริ่มต้น เขียนโดยใช้เครื่องหมายคาเร็ต เช่น
อักขระ ASCII ESC เขียนเป็น ^[ ลำดับการควบคุมเหล่านี้ไม่คำนึงถึงขนาดตัวพิมพ์
คำนำหน้าการนับสำหรับคำสั่งถูกป้อนโดยใช้ลำดับ ^[nที่นี่มี n เป็นลำดับของ 1
หรือตัวเลขเพิ่มเติม เว้นแต่จะระบุไว้เป็นอย่างอื่น หากละเว้นการนับ จะมีค่าเริ่มต้นเป็น 1

โปรดทราบว่าการแก้ไขชื่อคำสั่งจะใช้กับ . เท่านั้น ผูก สั่งการ. นอกจากนี้ หลายๆ
คำสั่งแก้ไขมีประโยชน์เฉพาะในเทอร์มินัลที่มีเคอร์เซอร์ที่มองเห็นได้ การผูกเริ่มต้น
ได้รับเลือกให้คล้ายกับการผูกคีย์ Emacs ที่สอดคล้องกัน ของผู้ใช้ TTY(4) ตัวอักษร
(เช่น ERASE) ถูกผูกไว้กับสิ่งทดแทนที่สมเหตุสมผลและแทนที่การผูกเริ่มต้น

ยกเลิก: ^C, ^G
ยกเลิกคำสั่งปัจจุบัน ล้างบัฟเฟอร์บรรทัด และตั้งค่าสถานะออกเป็น
ขัดจังหวะ.

แทรกอัตโนมัติ: [n]
เพียงทำให้อักขระปรากฏเป็นอินพุตตามตัวอักษร ตัวละครธรรมดาที่สุด
ผูกพันกับสิ่งนี้

ถ่านย้อนหลัง: [n] ^B, ^XD, ANSI-CurLeft, PC-CurLeft
เลื่อนเคอร์เซอร์ไปข้างหลัง n อักขระ

ย้อนกลับคำ: [n] ^[b, ANSI-Ctrl-CurLeft, ANSI-Alt-CurLeft
เลื่อนเคอร์เซอร์ไปข้างหลังที่จุดเริ่มต้นของคำ คำประกอบด้วย
ตัวอักษรและตัวเลข ขีดล่าง ('_') และเครื่องหมายดอลลาร์ ('$')

จุดเริ่มต้นของประวัติศาสตร์: ^[
ย้ายไปยังจุดเริ่มต้นของประวัติศาสตร์

จุดเริ่มต้นของบรรทัด: ^A, ANSI-Home, PC-Home
ย้ายเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดอินพุตที่แก้ไข

อักษรตัวพิมพ์ใหญ่: [n] ^[ค, ^[ค
ตัวพิมพ์ใหญ่อักขระตัวแรกในถัดไป n คำโดยปล่อยให้เคอร์เซอร์ผ่านจุดสิ้นสุด
ของคำสุดท้าย

หน้าจอใส: ^[^L
พิมพ์ลำดับเวลาคอมไพล์ที่กำหนดค่าได้เพื่อล้างหน้าจอและนำเคอร์เซอร์กลับบ้าน
วาดพรอมต์ใหม่ทั้งหมดและบรรทัดอินพุตที่แก้ไขในปัจจุบัน ลำดับเริ่มต้น
ใช้งานได้กับเทอร์มินัลมาตรฐานเกือบทั้งหมด

ความคิดเห็น: ^[#
หากบรรทัดปัจจุบันไม่ได้ขึ้นต้นด้วยอักขระความคิดเห็น จะมีการเพิ่มบรรทัดที่
จุดเริ่มต้นของบรรทัดและบรรทัดถูกป้อน (ราวกับว่าถูกกดกลับ);
มิฉะนั้น อักขระความคิดเห็นที่มีอยู่จะถูกลบออกและวางเคอร์เซอร์ไว้ที่
จุดเริ่มต้นของบรรทัด

สมบูรณ์: ^[^[
ดำเนินการให้สมบูรณ์โดยอัตโนมัติโดยไม่ซ้ำกันของชื่อคำสั่งหรือชื่อไฟล์
ที่มีเคอร์เซอร์ หากคำสั่งหรือชื่อไฟล์ที่เหลือทั้งหมดไม่ซ้ำกัน a
ช่องว่างจะถูกพิมพ์หลังจากเสร็จสิ้น เว้นแต่จะเป็นชื่อไดเร็กทอรีซึ่งในกรณีนี้
'/' ถูกต่อท้าย หากไม่มีคำสั่งหรือชื่อไฟล์ที่มีคำบางส่วนในปัจจุบัน
เป็นคำนำหน้า อักขระระฆังจะส่งออก (มักจะทำให้ส่งเสียงบี๊บ)

คำสั่งสมบูรณ์: ^X^[
ดำเนินการให้สมบูรณ์โดยอัตโนมัติโดยไม่ซ้ำกันของชื่อคำสั่งที่มีบางส่วน
คำขึ้นไปยังเคอร์เซอร์เป็นคำนำหน้าเช่นเดียวกับใน สมบูรณ์ คำสั่งด้านบน

ไฟล์ที่สมบูรณ์: ^[^X
ดำเนินการให้สมบูรณ์โดยอัตโนมัติโดยไม่ซ้ำกันของชื่อไฟล์ที่มีบางส่วน
คำขึ้นไปยังเคอร์เซอร์เป็นคำนำหน้าเช่นเดียวกับใน สมบูรณ์ คำสั่งที่อธิบายข้างต้น

รายการทั้งหมด: ^I, ^[=
กรอกคำปัจจุบันให้มากที่สุดและแสดงรายการที่เป็นไปได้
เสร็จสิ้นสำหรับมัน หากทำได้เพียงครั้งเดียว ให้จับคู่เหมือนใน สมบูรณ์
คำสั่งด้านบน โปรดทราบว่า ^I มักจะสร้างโดยคีย์ TAB (ตัวสร้างตาราง)

ลบถ่านย้อนกลับ: [n] ลบ, ^?, ^H
ลบ n อักขระก่อนเคอร์เซอร์

ลบถ่านไปข้างหน้า: [n] ANSI-เดล, PC-เดล
ลบ n อักขระหลังเคอร์เซอร์

ลบคำย้อนกลับ: [n] WERASE, ^[^?, ^[^H, ^[h .]
ลบ n คำก่อนเคอร์เซอร์

ลบคำไปข้างหน้า: [n] ^[ง
ลบอักขระหลังเคอร์เซอร์จนถึงจุดสิ้นสุดของ n คำ

ลงประวัติ: [n] ^N, ^XB, ANSI-CurDown, PC-CurDown
เลื่อนบัฟเฟอร์ประวัติไปข้างหน้า n บรรทัด (ภายหลัง) แต่ละบรรทัดอินพุตเดิม
เริ่มต้นหลังจากรายการสุดท้ายในบัฟเฟอร์ประวัติ ดังนั้น ลงประวัติศาสตร์ ไม่ใช่
มีประโยชน์จน ประวัติการค้นหา, ค้นหาประวัติขึ้น or ขึ้นประวัติ ที่ได้รับ
ดำเนินการ

ตัวพิมพ์เล็กคำ: [n] ^[L, ^[ล
ตัวพิมพ์เล็กถัดไป n คำ

แก้ไขบรรทัด: [n] ^เซ
แก้ไขบรรทัด n หรือบรรทัดปัจจุบัน หากไม่ระบุ โต้ตอบได้ ที่เกิดขึ้นจริง
คำสั่งที่ดำเนินการคือ fc -e ${ภาพ:-${แก้ไข:-vi}} n.

สิ้นสุดประวัติศาสตร์: ^[>
ย้ายไปยังจุดสิ้นสุดของประวัติศาสตร์

ปลายสาย: ^E, ANSI-End, PC-End
ย้ายเคอร์เซอร์ไปที่จุดสิ้นสุดของบรรทัดอินพุต

เอิท: ^_
ทำหน้าที่เป็นส่วนท้ายของไฟล์ สิ่งนี้มีประโยชน์เพราะอินพุตโหมดแก้ไขปิดใช้งานปกติ
อินพุตเทอร์มินัล

eot-หรือ-ลบ: [n] ^ด
ทำหน้าที่เป็น EOT ถ้าอยู่คนเดียวในสาย; มิฉะนั้นจะทำหน้าที่เป็น ลบถ่านไปข้างหน้า.

ข้อผิดพลาด: (ไม่ผูกมัด)
เกิดข้อผิดพลาด (กดกริ่ง)

แลกเปลี่ยนจุดและเครื่องหมาย: ^X^X
วางเคอร์เซอร์ในตำแหน่งที่มีเครื่องหมาย และตั้งค่าเครื่องหมายไปยังตำแหน่งที่เคอร์เซอร์อยู่

ขยายไฟล์: ^[*
ต่อท้าย '*' กับคำปัจจุบันและแทนที่คำด้วยผลลัพธ์ของ
ทำการ globbing ไฟล์บนคำ หากไม่มีไฟล์ตรงกับรูปแบบ ระฆังจะเป็น
รุ่ง

ไปข้างหน้าถ่าน: [n] ^F, ^XC, ANSI-CurRight, PC-CurRight
เลื่อนเคอร์เซอร์ไปข้างหน้า n อักขระ

คำนำหน้า: [n] ^[f, ANSI-Ctrl-CurRight, ANSI-Alt-CurRight
เลื่อนเคอร์เซอร์ไปข้างหน้าไปยังจุดสิ้นสุดของ nคำที่

goto-ประวัติ: [n] ^[ก
ไปที่หมายเลขประวัติ n.

คิลไลน์: KILL
ลบบรรทัดอินพุตทั้งหมด

ฆ่าภูมิภาค: ^W
ลบอินพุตระหว่างเคอร์เซอร์และเครื่องหมาย

คิลทูออล: [n] ^เค
ลบอินพุตจากเคอร์เซอร์ไปที่ท้ายบรรทัด if n ไม่ได้ระบุ;
มิฉะนั้นจะลบอักขระระหว่างเคอร์เซอร์และคอลัมน์ n.

รายการ: ^[?
พิมพ์รายการชื่อคำสั่งหรือชื่อไฟล์ที่เรียงลำดับและเรียงเป็นคอลัมน์ (ถ้ามี) ที่สามารถ
เติมคำบางส่วนที่มีเคอร์เซอร์ให้สมบูรณ์ ชื่อไดเร็กทอรีมี '/' ต่อท้าย
ถึงพวกเขา.

รายการคำสั่ง: ^X?
พิมพ์รายการชื่อคำสั่งที่เรียงลำดับและเรียงเป็นคอลัมน์ (ถ้ามี) ที่สามารถกรอก
คำบางส่วนที่มีเคอร์เซอร์

รายการไฟล์: ^X^Y
พิมพ์รายการชื่อไฟล์ที่เรียงลำดับและเรียงเป็นคอลัมน์ (ถ้ามี) ที่สามารถกรอก
คำบางส่วนที่มีเคอร์เซอร์ ตัวบ่งชี้ประเภทไฟล์ถูกต่อท้ายตามที่อธิบายไว้
ภายใต้ รายการ ข้างบน.

ขึ้นบรรทัดใหม่: ^J, ^M
ทำให้สายอินพุตปัจจุบันถูกประมวลผลโดยเชลล์ เคอร์เซอร์ปัจจุบัน
ตำแหน่งอาจอยู่ที่ใดก็ได้ในบรรทัด

ขึ้นบรรทัดใหม่และถัดไป: ^O
ทำให้บรรทัดอินพุตปัจจุบันถูกประมวลผลโดยเชลล์ และบรรทัดถัดไปจาก
ประวัติศาสตร์กลายเป็นบรรทัดปัจจุบัน สิ่งนี้มีประโยชน์หลังจาก an . เท่านั้น ขึ้นประวัติ,
ประวัติการค้นหา or ค้นหาประวัติขึ้น.

no-op: เลิก
นี้ไม่ทำอะไรเลย

คำนำหน้า-1: ^[
แนะนำลำดับคำสั่ง 2 อักขระ

คำนำหน้า-2: ^X, ^[[, ^[O
แนะนำลำดับคำสั่ง 2 อักขระ

คำก่อนหน้า: [n-
คำสุดท้าย หรือ ถ้าให้ nคำที่ (ตามศูนย์) ของคำก่อนหน้า (ซ้ำ
คำสั่งการดำเนินการ คำสั่งที่สอง คำสั่งสุดท้าย คำสั่งที่สาม ฯลฯ) ถูกแทรกที่เคอร์เซอร์ การใช้
คำสั่งแก้ไขนี้จะลบล้างเครื่องหมาย

คำพูด: ^^, ^V
อักขระต่อไปนี้ใช้ตามตัวอักษรแทนที่จะเป็นคำสั่งแก้ไข

วาดใหม่: ^L
พิมพ์ซ้ำบรรทัดสุดท้ายของสตริงพร้อมต์และบรรทัดอินพุตปัจจุบันบน new
เส้น

ค้นหาอักขระย้อนกลับ: [n-
ค้นหาย้อนหลังในบรรทัดปัจจุบันสำหรับ nการเกิดของอักขระตัวถัดไป
พิมพ์

ค้นหาตัวอักษรไปข้างหน้า: [n-
ค้นหาไปข้างหน้าในบรรทัดปัจจุบันสำหรับ nการเกิดของอักขระตัวถัดไป
พิมพ์

ประวัติการค้นหา: ^R
เข้าสู่โหมดการค้นหาที่เพิ่มขึ้น รายการประวัติภายในถูกค้นหาย้อนหลังสำหรับ
คำสั่งที่ตรงกับอินพุต ชื่อย่อ '^' ในสตริงการค้นหาจะยึด
ค้นหา. ปุ่ม Escape จะออกจากโหมดการค้นหา คำสั่งอื่นๆ รวมทั้งลำดับ
ของการหลบหนี as คำนำหน้า-1 ตามด้วย คำนำหน้า-1 or คำนำหน้า-2 คีย์จะถูกดำเนินการหลังจาก
ออกจากโหมดการค้นหา NS ยกเลิก (^G) คำสั่งจะคืนค่าบรรทัดอินพุตก่อน
การค้นหาเริ่มต้นขึ้น ต่อเนื่อง ประวัติการค้นหา คำสั่งยังคงค้นหาย้อนกลับไปยัง
รูปแบบที่เกิดขึ้นก่อนหน้าถัดไป บัฟเฟอร์ประวัติเก็บไว้เพียง a
จำนวนบรรทัดที่ จำกัด ; ที่เก่าแก่ที่สุดจะถูกทิ้งตามความจำเป็น

การค้นหาประวัติขึ้น: ANSI-PgUp, PC-PgUp
ค้นหาย้อนหลังผ่านบัฟเฟอร์ประวัติสำหรับคำสั่งที่มีจุดเริ่มต้นตรงกับ
ส่วนของบรรทัดอินพุตก่อนเคอร์เซอร์ เมื่อใช้กับบรรทัดว่าง จะได้
มีผลเช่นเดียวกับ ขึ้นประวัติ.

การค้นหาประวัติลง: ANSI-PgDn, PC-PgDn
ค้นหาไปข้างหน้าผ่านบัฟเฟอร์ประวัติสำหรับคำสั่งที่มีจุดเริ่มต้นตรงกับ
ส่วนของบรรทัดอินพุตก่อนเคอร์เซอร์ เมื่อใช้กับบรรทัดว่าง จะได้
มีผลเช่นเดียวกับ ลงประวัติศาสตร์. สิ่งนี้มีประโยชน์หลังจาก an . เท่านั้น ขึ้นประวัติ,
ประวัติการค้นหา or ค้นหาประวัติขึ้น.

set-mark-คำสั่ง: ^[
ตั้งเครื่องหมายที่ตำแหน่งเคอร์เซอร์

การเปลี่ยนตำแหน่งตัวอักษร: ^T
ถ้าอยู่ท้ายบรรทัดหรือถ้า จีแมค ตั้งค่าตัวเลือกไว้ จะเป็นการแลกเปลี่ยนทั้งสอง
อักขระก่อนหน้า; มิฉะนั้นจะแลกเปลี่ยนอักขระก่อนหน้าและปัจจุบันและ
เลื่อนเคอร์เซอร์ไปทางขวาหนึ่งอักขระ

ประวัติความเป็นมา: [n] ^P, ^XA, ANSI-CurUp, PC-CurUp
เลื่อนบัฟเฟอร์ประวัติย้อนหลัง n บรรทัด (ก่อนหน้านี้)

ตัวพิมพ์ใหญ่คำ: [n] ^[คุณ, ^[u
ตัวพิมพ์ใหญ่ต่อไป n คำ

รุ่น: ^[^V
แสดงเวอร์ชันของ มช. บัฟเฟอร์การแก้ไขปัจจุบันถูกกู้คืนทันทีที่คีย์
ถูกกด การกดปุ่มกู้คืนจะได้รับการประมวลผล เว้นแต่จะเป็นการเว้นวรรค

ดึง: ^Y
แทรกสตริงข้อความที่ปิดล่าสุดที่ตำแหน่งเคอร์เซอร์ปัจจุบัน

แยงก์ป๊อป: ^[y
ทันทีหลังจากนั้น งัดแทนที่สตริงข้อความที่แทรกด้วย next Previous
สตริงข้อความที่ถูกฆ่า

Vi การแก้ไข โหมด
หมายเหตุ โหมดแก้ไขบรรทัดคำสั่ง vi ถูกละเลย แต่ยังคงใช้งานได้ มันสะอาด 8 บิต
แต่ไม่รองรับ UTF-8 หรือ MBCS โดยเฉพาะ

ตัวแก้ไขบรรทัดคำสั่ง vi ใน มช โดยพื้นฐานแล้วมีคำสั่งเหมือนกับ vi(1) บรรณาธิการกับ
ข้อยกเว้นดังต่อไปนี้:

· คุณเริ่มต้นในโหมดแทรก

· มีชื่อไฟล์และคำสั่งการเติมคำสั่ง: =, \, *, ^X, ^E, ^F และ,
ทางเลือก และ .

· พื้นที่ _ คำสั่งต่างกัน (in มชมันคือคำสั่งอาร์กิวเมนต์สุดท้าย ใน vi(1) มันไป
ไปยังจุดเริ่มต้นของบรรทัดปัจจุบัน)

· พื้นที่ / และ G คำสั่งเคลื่อนไปในทิศทางตรงกันข้ามกับ j คำสั่ง

· ไม่มีคำสั่งที่ไม่สมเหตุสมผลในโปรแกรมแก้ไขบรรทัดเดียว (เช่น screen
คำสั่งการเคลื่อนไหวและ ex(1)-สไตล์โคลอน (:) คำสั่ง)

Like vi(1) มีสองโหมด: โหมด "แทรก" และโหมด "คำสั่ง" ในโหมดแทรก ส่วนใหญ่
อักขระจะถูกใส่ในบัฟเฟอร์ที่ตำแหน่งเคอร์เซอร์ปัจจุบันขณะที่พิมพ์
อย่างไรก็ตาม ตัวละครบางตัวได้รับการดูแลเป็นพิเศษ โดยเฉพาะอักขระต่อไปนี้คือ
นำมาจากปัจจุบัน TTY(4) การตั้งค่า (ดู สติ(1)) และมีความหมายตามปกติ (ค่าปกติ
อยู่ในวงเล็บ): kill (^U), ลบ (^?), werase (^W), eof (^D), intr (^C) และออก (^\)
นอกเหนือจากข้างต้นแล้ว อักขระต่อไปนี้ยังได้รับการปฏิบัติเป็นพิเศษในการแทรก
โหมด:

^E คำสั่งและการแจงนับชื่อไฟล์ (ดูด้านล่าง)

^F คำสั่งและการกรอกชื่อไฟล์ (ดูด้านล่าง) หากใช้ติดต่อกันสองครั้ง รายการของ
ความสำเร็จที่เป็นไปได้จะปรากฏขึ้น; ถ้าใช้ครั้งที่ XNUMX ถือว่าเสร็จสิ้น

^H ลบอักขระก่อนหน้า

^J | ^M สิ้นสุดบรรทัด บรรทัดปัจจุบันถูกอ่าน แยกวิเคราะห์ และดำเนินการโดยเชลล์

^V ตัวอักษรต่อไป. อักขระตัวถัดไปที่พิมพ์จะไม่ได้รับการปฏิบัติเป็นพิเศษ (สามารถใช้เพื่อ
ใส่อักขระที่อธิบายไว้ที่นี่)

^X คำสั่งและการขยายชื่อไฟล์ (ดูด้านล่าง)

ทำให้เอดิเตอร์อยู่ในโหมดคำสั่ง (ดูด้านล่าง)

ชื่อไฟล์เสริมและการเติมคำสั่งให้สมบูรณ์ (ดู ^F ด้านบน) เปิดใช้งานด้วย ชุด -o
vi-แท็บสมบูรณ์.

ในโหมดคำสั่ง อักขระแต่ละตัวจะถูกแปลเป็นคำสั่ง ตัวละครที่ไม่
สอดคล้องกับคำสั่ง เป็นคำสั่งผสมที่ผิดกฎหมาย หรือเป็นคำสั่งที่ไม่สามารถ
ดำเนินการทั้งหมดทำให้เกิดเสียงบี๊บ ในคำอธิบายคำสั่งต่อไปนี้ [n] หมายถึง
คำสั่งอาจนำหน้าด้วยตัวเลข (เช่น 10l เลื่อนไปทางขวา 10 ตัวอักษร); ถ้าไม่มีตัวเลข
ใช้คำนำหน้า n จะถือว่าเป็น 1 เว้นแต่จะระบุไว้เป็นอย่างอื่น คำว่า “ปัจจุบัน
ตำแหน่ง” หมายถึงตำแหน่งระหว่างเคอร์เซอร์และอักขระที่อยู่ข้างหน้าเคอร์เซอร์
“คำ” คือลำดับของตัวอักษร ตัวเลข และอักขระขีดล่าง หรือลำดับของอักขระที่ไม่ใช่
ตัวอักษร, ไม่ใช่ตัวเลข, ไม่ใช่ขีดล่าง และอักขระที่ไม่ใช่ช่องว่าง (เช่น “ab2*&^” ประกอบด้วยอักขระสองตัว
คำ) และ "คำใหญ่" คือลำดับของอักขระที่ไม่ใช่ช่องว่าง

พิเศษ มช คำสั่ง vi:

คำสั่งต่อไปนี้ไม่อยู่ในหรือแตกต่างจากโปรแกรมแก้ไขไฟล์ vi ปกติ:

[n]_ เว้นวรรคตามด้วย nคำใหญ่จากคำสั่งสุดท้ายในประวัติศาสตร์
ที่ตำแหน่งปัจจุบันและเข้าสู่โหมดแทรก; ถ้า n ไม่ได้ระบุไว้สุดท้าย
มีการแทรกคำ

# ใส่อักขระความคิดเห็น ('#') ที่จุดเริ่มต้นของบรรทัดปัจจุบันและส่งคืน
เส้นตรงไปยังเปลือก (เทียบเท่ากับ ฉัน#^J).

[n]g ชอบ Gยกเว้นถ้า n ไม่ได้ระบุ จะไปจำล่าสุด
เส้น

[n]v แก้ไขบรรทัด n โดยใช้โปรแกรม vi(1) บรรณาธิการ ถ้า n ไม่ได้ระบุบรรทัดปัจจุบันคือ
แก้ไข คำสั่งจริงที่ดำเนินการคือ fc -e ${ภาพ:-${แก้ไข:-vi}} n.

* และ ^X คำสั่งหรือการขยายชื่อไฟล์ใช้กับคำใหญ่ปัจจุบัน (ด้วย an
ต่อท้าย '*' หากคำนั้นไม่มีอักขระที่เป็นไฟล์กลม) – คำใหญ่คือ
แทนที่ด้วยคำผลลัพธ์ หากคำใหญ่ในปัจจุบันเป็นคำแรกบน
บรรทัดหรือตามหลังอักขระตัวใดตัวหนึ่ง ';', '|', '&', '(' หรือ ')' และไม่
มีเครื่องหมายทับ ('/') จากนั้นขยายคำสั่งเสร็จแล้ว มิฉะนั้นชื่อไฟล์
การขยายเสร็จสิ้น การขยายคำสั่งจะจับคู่คำใหญ่กับทั้งหมด
นามแฝง ฟังก์ชัน และคำสั่งในตัว ตลอดจนไฟล์เรียกทำงานใดๆ ที่พบ
โดยการค้นหาไดเร็กทอรีในพารามิเตอร์ PATH การจับคู่การขยายชื่อไฟล์
คำใหญ่เทียบกับไฟล์ในไดเร็กทอรีปัจจุบัน หลังจากการขยายตัว
เคอร์เซอร์วางทับคำสุดท้ายและตัวแก้ไขอยู่ในโหมดแทรก

[n-n]^ฉ, [n] , และ [n]
การกรอกชื่อคำสั่ง/ไฟล์ แทนที่คำใหญ่ปัจจุบันด้วยคำที่ยาวที่สุด
การจับคู่ที่ไม่ซ้ำที่ได้รับหลังจากดำเนินการขยายคำสั่งและชื่อไฟล์
จะรับรู้ได้ก็ต่อเมื่อ vi-แท็บสมบูรณ์ ตั้งค่าตัวเลือกไว้ในขณะที่ เป็นเพียง
รับรู้ถ้า vi-esccomplete ตั้งค่าตัวเลือกแล้ว (ดู ชุด -o) ถ้า n ระบุไว้
nเลือกความสมบูรณ์ที่เป็นไปได้ (ตามที่รายงานโดยคำสั่ง/ชื่อไฟล์
คำสั่งนับ)

= และ ^E คำสั่ง/การแจงนับชื่อไฟล์ แสดงรายการคำสั่งหรือไฟล์ทั้งหมดที่ตรงกับ
คำใหญ่ในปัจจุบัน

^V แสดงเวอร์ชันของ มช. บัฟเฟอร์การแก้ไขปัจจุบันจะถูกกู้คืนทันทีที่a
กดปุ่ม การกดปุ่มกู้คืนจะถูกละเว้น

@c การขยายมาโคร ดำเนินการคำสั่งที่พบในนามแฝง c.

คำสั่งการเคลื่อนไหวภายในบรรทัด:

[n]มือ [n]^ฮ
เลื่อนไปทางซ้าย n อักขระ

[n]ที่ดิน [n]
เลื่อนไปทางขวา n อักขระ

0 ย้ายไปที่คอลัมน์ 0

^ ย้ายไปยังอักขระที่ไม่ใช่ช่องว่างตัวแรก

[n]| ย้ายไปที่คอลัมน์ n.

$ ย้ายไปที่อักขระตัวสุดท้าย

[n]b ย้ายกลับ n คำ

[n]B ย้ายกลับ n คำใหญ่

[n] e เลื่อนไปข้างหน้าเพื่อสิ้นสุดคำ n ครั้ง

[n]E ก้าวไปข้างหน้าจนถึงจุดสิ้นสุดของคำใหญ่ n ครั้ง

[n]w ก้าวไปข้างหน้า n คำ

[n]W ก้าวไปข้างหน้า n คำใหญ่

% ค้นหารายการที่ตรงกัน ตัวแก้ไขมองไปข้างหน้าสำหรับวงเล็บ วงเล็บปีกกา หรือวงเล็บปีกกาที่ใกล้ที่สุด
แล้วเลื่อนเคอร์เซอร์ไปที่วงเล็บ วงเล็บปีกกา หรือวงเล็บปีกกาที่ตรงกัน

[n]fc ก้าวไปข้างหน้าเพื่อ nการเกิดของตัวละคร c.

[n]Fc ถอยหลังไปที่ nการเกิดของตัวละคร c.

[n]tc เลื่อนไปข้างหน้าก่อน nการเกิดของตัวละคร c.

[n]Tc ถอยหลังไปก่อน nการเกิดของตัวละคร c.

[n]; ซ้ำครั้งสุดท้าย f, F, t,หรือ T คำสั่ง

[n], ทำซ้ำครั้งสุดท้าย f, F, t,หรือ T คำสั่ง แต่เคลื่อนที่ไปในทิศทางตรงกันข้าม

คำสั่งการเคลื่อนไหวระหว่างบรรทัด:

[n]NS, [n]+ และ [n]^น
เลื่อนไปที่ nบรรทัดถัดไปในประวัติศาสตร์

[n]เค, [n]-, และ [n]^ป
เลื่อนไปที่ nบรรทัดก่อนหน้าในประวัติศาสตร์

[n]G ย้ายไปที่บรรทัด n ในประวัติศาสตร์ ถ้า n ไม่ได้ระบุจำนวนครั้งแรก
ใช้บรรทัดที่จำได้

[n]g ชอบ Gยกเว้นถ้า n ไม่ได้ระบุไว้ มันจะไปที่บรรทัดที่จำได้ล่าสุด

[n]/เชือก
ค้นหาย้อนหลังผ่านประวัติสำหรับ nบรรทัดที่ประกอบด้วย เชือก; ถ้า เชือก
เริ่มต้นด้วย '^' ส่วนที่เหลือของสตริงต้องปรากฏที่จุดเริ่มต้นของประวัติ
เส้นเพื่อให้ตรงกัน

[n]?เชือก
เหมือนกับ /เว้นแต่จะค้นหาไปข้างหน้าผ่านประวัติ

[n]n ค้นหา nการเกิดขึ้นของสตริงการค้นหาล่าสุด ทิศทางการค้นหา
เหมือนกับการค้นหาครั้งล่าสุด

[n]N ค้นหา nการเกิดขึ้นของสตริงการค้นหาล่าสุด ทิศทางการค้นหา
เป็นสิ่งที่ตรงกันข้ามกับการค้นหาครั้งล่าสุด

ANSI-CurUp, PC-PgUp
นำอักขระจากจุดเริ่มต้นของบรรทัดไปยังตำแหน่งเคอร์เซอร์ปัจจุบันเป็น
ค้นหาสตริงและทำการค้นหาประวัติย้อนหลังสำหรับบรรทัดที่ขึ้นต้นด้วยสิ่งนี้
สตริง; รักษาตำแหน่งเคอร์เซอร์ ใช้งานได้เฉพาะในโหมดแทรกและเก็บไว้
เปิดการใช้งาน

แก้ไขคำสั่ง

[n]a ต่อท้ายข้อความ n ครั้ง; จะเข้าสู่โหมดแทรกหลังจากตำแหน่งปัจจุบัน NS
append จะถูกจำลองซ้ำก็ต่อเมื่อเข้าสู่โหมดคำสั่งอีกครั้ง ie ถูกนำมาใช้.

[n]เหมือนกับ aเว้นแต่จะต่อท้ายบรรทัด

[n]ฉันแทรกข้อความ n ครั้ง; เข้าสู่โหมดแทรกที่ตำแหน่งปัจจุบัน การแทรก
จะถูกจำลองแบบก็ต่อเมื่อเข้าสู่โหมดคำสั่งอีกครั้ง ie ถูกนำมาใช้.

[n]ฉันก็เหมือนกัน iยกเว้นการแทรกก่อนอักขระที่ไม่เว้นว่างตัวแรก

[n] s ทดแทนต่อไป n ตัวอักษร (เช่น ลบตัวอักษรและเข้าไปที่ส่วนแทรก
โหมด).

S แทนที่ทั้งเส้น อักขระทั้งหมดตั้งแต่อักขระที่ไม่เว้นว่างตัวแรกจนถึงจุดสิ้นสุด
ของบรรทัดจะถูกลบออกและเข้าสู่โหมดแทรก

[n]cย้าย-cmd
เปลี่ยนจากตำแหน่งปัจจุบันเป็นตำแหน่งที่เกิดจาก n ย้าย-cmds (เช่น
ลบภูมิภาคที่ระบุและเข้าสู่โหมดแทรก); ถ้า ย้าย-cmd is cบรรทัด
โดยเริ่มจากอักขระที่ไม่เว้นว่างตัวแรกจะเปลี่ยนไป

C เปลี่ยนจากตำแหน่งปัจจุบันไปยังจุดสิ้นสุดของบรรทัด (เช่น ลบไปยังจุดสิ้นสุดของ
สายและเข้าสู่โหมดแทรก)

[n]x ลบรายการถัดไป n อักขระ

[n]X ลบก่อนหน้า n อักขระ

D ลบไปจนสุดบรรทัด

[n]dย้าย-cmd
ลบจากตำแหน่งปัจจุบันไปยังตำแหน่งที่เกิดจาก n ย้าย-cmds;
ย้าย-cmd เป็นคำสั่งการเคลื่อนไหว (ดูด้านบน) หรือ dซึ่งในกรณีนี้บรรทัดปัจจุบันคือ
ที่ถูกลบ

[n]rc แทนที่ถัดไป n ตัวละครกับตัวละคร c.

[n]R แทนที่ เข้าสู่โหมดแทรกแต่เขียนทับอักขระที่มีอยู่แทนการแทรก
ก่อนตัวละครที่มีอยู่ การแทนที่ซ้ำแล้วซ้ำอีก n ครั้ง

[n]~ เปลี่ยนกรณีต่อไป n อักขระ

[n]yย้าย-cmd
ดึงจากตำแหน่งปัจจุบันไปยังตำแหน่งที่เกิดจาก n ย้าย-cmdเข้าสู่
ดึงบัฟเฟอร์; ถ้า ย้าย-cmd is y, ดึงทั้งเส้น

Y ดึงจากตำแหน่งปัจจุบันไปยังจุดสิ้นสุดของบรรทัด

[n]p วางเนื้อหาของบัฟเฟอร์ yank หลังตำแหน่งปัจจุบัน n ครั้ง

[n]P เหมือนกับ pยกเว้นจะวางบัฟเฟอร์ไว้ที่ตำแหน่งปัจจุบัน

คำสั่ง vi เบ็ดเตล็ด

^J และ ^M
บรรทัดปัจจุบันถูกอ่าน แยกวิเคราะห์ และดำเนินการโดยเชลล์

^L และ ^R
วาดเส้นปัจจุบันใหม่

[n]. ทำซ้ำคำสั่งแก้ไขล่าสุด n ครั้ง

u เลิกทำคำสั่งแก้ไขล่าสุด

U เลิกทำการเปลี่ยนแปลงทั้งหมดที่ทำกับบรรทัดปัจจุบัน

ปุ่มโฮม PC, End, Del และเคอร์เซอร์
พวกมันเคลื่อนที่ตามที่คาดไว้ ทั้งในแทรกและโหมดคำสั่ง

เข้าสู่ และ เลิก
อักขระเทอร์มินัลขัดจังหวะและออกจากเทอร์มินัลทำให้บรรทัดปัจจุบันถูกลบและ
พร้อมท์ใหม่ที่จะพิมพ์

ใช้ mksh ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    Alt-F
    Alt-F
    Alt-F ให้โอเพ่นซอร์สฟรีและ
    เฟิร์มแวร์สำรองสำหรับ DLINK
    DNS-320/320L/321/323/325/327L and
    DNR-322L. Alt-F มี Samba และ NFS;
    รองรับ ext2/3/4...
    ดาวน์โหลด Alt-F
  • 2
    USM
    USM
    Usm เป็นแพ็คเกจสแล็คแวร์แบบครบวงจร
    ผู้จัดการที่จัดการอัตโนมัติ
    การแก้ปัญหาการพึ่งพา มันรวมกัน
    ที่เก็บแพ็คเกจต่างๆ รวมถึง
    สแล็คแวร์ สแล็กกี้ พี...
    ดาวน์โหลด ยูเอสเอ็ม
  • 3
    Chart.js
    Chart.js
    Chart.js เป็นไลบรารี Javascript ที่
    ช่วยให้นักออกแบบและนักพัฒนาสามารถวาด
    แผนภูมิทุกประเภทโดยใช้ HTML5
    องค์ประกอบผ้าใบ Chart js เสนอข้อเสนอที่ยอดเยี่ยม
    อาร์เรย์ ...
    ดาวน์โหลด Chart.js
  • 4
    iReport-Designer สำหรับ JasperReports
    iReport-Designer สำหรับ JasperReports
    หมายเหตุ: การสนับสนุน iReport/Jaspersoft Studio
    ประกาศ: ณ เวอร์ชัน 5.5.0,
    Jaspersoft Studio จะเป็นทางการ
    ออกแบบไคลเอนต์สำหรับ JasperReports iReport
    จะ...
    ดาวน์โหลด iReport-Designer สำหรับ JasperReports
  • 5
    โพสต์ตัวติดตั้งF
    โพสต์ตัวติดตั้งF
    PostInstallerF จะติดตั้งทั้งหมด
    ซอฟต์แวร์ที่ Fedora Linux และอื่นๆ
    ไม่รวมโดยค่าเริ่มต้นหลังจาก
    ใช้งาน Fedora เป็นครั้งแรก มันคือ
    ง่ายสำหรับ...
    ดาวน์โหลด PostInstallerF
  • 6
    สเตรซ
    สเตรซ
    ย้ายโครงการ strace ไปที่
    https://strace.io. strace is a
    วินิจฉัย แก้จุดบกพร่อง และการสอน
    ตัวติดตามพื้นที่ผู้ใช้สำหรับ Linux มันถูกใช้
    เพื่อเฝ้าติดตามก...
    ดาวน์โหลด
  • เพิ่มเติม»

คำสั่ง Linux

Ad