บทช่วยสอน การป้อนข้อมูลเชลล์ / การเปลี่ยนเส้นทางการส่งออก ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ การเปลี่ยนเส้นทางการส่งออก,การเปลี่ยนเส้นทางการป้อนข้อมูล,เอกสารที่นี่,/ dev / null ไฟล์,
ระบบ UNIX ส่วนใหญ่จะยอมรับคำสั่งจากการป้อนข้อมูล terminal ของคุณและการส่งออกที่สร้างขึ้นจะถูกส่งกลับไปยังสถานีของคุณ คำสั่งมักจะอ่านจากการป้อนข้อมูลท้องถิ่นที่เรียกว่าเข้ามาตรฐานตามค่าเริ่มต้นนี้เกิดขึ้นเป็นสถานีของคุณ ในทำนองเดียวกันคำสั่งมักจะเขียนผลลัพธ์ที่จะออกมาตรฐานโดยค่าเริ่มต้นนี้เป็นสถานีของคุณ
รายการคำสั่งเปลี่ยนเส้นทางดังนี้
คำสั่ง | คำอธิบาย |
---|---|
คำสั่ง> ไฟล์ | เปลี่ยนเส้นทางออกไปยังแฟ้ม |
คำสั่ง <ไฟล์ | เปลี่ยนเส้นทางการป้อนข้อมูลไปยังแฟ้ม |
คำสั่ง >> ไฟล์ | เอาท์พุทจะเปลี่ยนเส้นทางไปยังแฟ้มท้าย |
N> ไฟล์ | อธิบายไฟล์สำหรับไฟล์ที่ n เปลี่ยนเส้นทางไปยังแฟ้ม |
n >> ไฟล์ | แฟ้มบ่ง n จะยื่นวิธีการเพิ่มเติมเพื่อเปลี่ยนเส้นทางแฟ้ม |
N> & M | มไฟล์ที่ส่งออกและ n จะถูกผสาน |
n <& M | เมตรแฟ้มใส่และ n จะถูกผสาน |
<< แท็ก | เนื้อหาแท็กเริ่มต้นและสิ้นสุดแท็กแท็กแท็กระหว่างเป็น input |
โปรดทราบว่าอธิบายไฟล์ 0 มักจะเข้ามาตรฐาน (STDIN) 1 คือออกมาตรฐาน (STDOUT) 2 เป็นข้อผิดพลาดออกมาตรฐาน (STDERR)
เปลี่ยนเส้นทางโดยทั่วไประหว่างคำสั่งเพื่อแทรกสัญลักษณ์ที่เฉพาะเจาะจงเพื่อให้บรรลุ โดยเฉพาะอย่างยิ่งสัญลักษณ์เหล่านี้แสดงในไวยากรณ์ต่อไปนี้:
command1 > file1
คำสั่งดังกล่าวจะดำเนินการ Command1 แล้วออกเนื้อหาที่เก็บไว้ใน file1
file1 หมายเหตุว่าเนื้อหาใด ๆ ที่มีอยู่แล้วจะถูกแทนที่ด้วยเนื้อหาใหม่ หากคุณต้องการที่จะเพิ่มเนื้อหาใหม่ในตอนท้ายของไฟล์ที่ใช้ >> ผู้ประกอบการ
เรียกใช้คำสั่งต่อไปนี้ที่จบมันจะเปลี่ยนเส้นทางออกคำสั่งในไฟล์ของผู้ใช้ (ผู้ใช้):
$ who > users
หลังจากที่การกระทำที่มีการส่งออกที่สถานีไม่ก็เป็นเพราะการส่งออกที่ได้รับการเปลี่ยนเส้นทางจากอุปกรณ์ส่งออกเริ่มต้นมาตรฐาน (Terminal) เพื่อแฟ้มที่ระบุ
คุณสามารถใช้คำสั่ง cat เพื่อดูเนื้อหาของแฟ้ม:
$ cat users _mbsetupuser console Oct 31 17:35 tianqixin console Oct 31 17:35 tianqixin ttys000 Dec 1 11:33
การเปลี่ยนเส้นทางขาออกเขียนทับเนื้อหาของแฟ้มให้ดูตัวอย่างต่อไปนี้:
$ echo "本教程:www.w3write.com" > users $ cat users 本教程:www.w3write.com $
หากคุณไม่ต้องการให้เนื้อหาของไฟล์จะถูกเขียนทับ, คุณสามารถใช้ >> ผนวกกับไฟล์ตัวอย่างเช่น:
$ echo "本教程:www.w3write.com" >> users $ cat users 本教程:www.w3write.com 本教程:www.w3write.com $
และในขณะที่การเปลี่ยนเส้นทางออกคำสั่ง Unix สามารถใช้ข้อมูลจากแฟ้มไวยากรณ์คือ
command1 < file1
ดังนั้นจึงจำเป็นที่จะต้องเดิมที่จะได้รับข้อมูลจากแป้นพิมพ์จะถูกโอนไปยังแฟ้มคำสั่งเพื่ออ่านเนื้อหา
หมายเหตุ: การเปลี่ยนเส้นทางการส่งออกมากกว่าสัญลักษณ์ (>) เปลี่ยนเส้นทางการป้อนข้อมูลน้อยกว่า (<)
จากนั้นตัวอย่างข้างต้นเราต้องนับจำนวนของผู้ใช้ไฟล์แถวรันคำสั่งต่อไปนี้:
$ wc -l users 2 users
นอกจากนี้คุณยังสามารถเปลี่ยนไฟล์ข้อมูลกับผู้ใช้:
$ wc -l < users 2
หมายเหตุ: ผลที่ได้จากสองตัวอย่างข้างต้นจะแตกต่างกัน: ตัวอย่างแรกชื่อไฟล์ที่ส่งออกจะที่สองจะไม่ได้เพราะมันรู้อ่านเท่านั้นจากอินพุตมาตรฐาน
command1 < infile > outfile
แทนที่ทั้งเข้าและส่งออกดำเนินการ Command1, INFILE อ่านจากแฟ้มแล้วเขียนออกไป OUTFILE
ภายใต้สถานการณ์ปกติแต่ละคำสั่ง Unix / Linux วิ่งจะเปิดสามไฟล์:
โดยค่าเริ่มต้นคำสั่ง> ไฟล์เปลี่ยนเส้นทาง stdout ไปยังแฟ้มคำสั่ง <ไฟล์จะ stdin เปลี่ยนเส้นทางไปยังแฟ้ม
หากคุณต้องการเปลี่ยนเส้นทาง stderr ไปยังแฟ้มคุณสามารถเขียน:
$ command 2 > file
หากคุณต้องการที่จะผนวกการสิ้นสุดของแฟ้ม stderr คุณสามารถเขียน:
$ command 2 >> file
2 หมายถึงไฟล์ข้อผิดพลาดมาตรฐาน (stderr)
หากคุณต้องการที่จะผสานหลังจากที่ stdout และ stderr เปลี่ยนเส้นทางไปยังไฟล์ที่คุณสามารถเขียน:
$ command > file 2>&1 或者 $ command >> file 2>&1
หากคุณต้องการเปลี่ยนเส้นทาง stdin และ stdout คุณสามารถเขียน:
$ command < file1 >file2
stdin คำสั่งคำสั่งเปลี่ยนเส้นทางไปยัง file1 เปลี่ยนเส้นทาง stdout file2 ไป
นี่เอกสารเชลล์อยู่ในวิธีการเปลี่ยนเส้นทางพิเศษที่ใช้ในการเปลี่ยนเส้นทางการป้อนข้อมูลไปยังเชลล์สคริปต์หรือโปรแกรมโต้ตอบ
รูปแบบพื้นฐานที่จะเป็นดังนี้:
command << delimiter document delimiter
มันเป็นบทบาทของเนื้อหา (เอกสาร) ถูกส่งไปยังทั้งสองตัวคั่นระหว่างคำสั่งเป็น input
หมายเหตุ:
- สิ้นสุดวันที่คั่นจะต้องเขียนตารางด้านบนไม่สามารถมีตัวอักษรใด ๆ ในด้านหน้าของกลับไม่สามารถมีตัวอักษรใด ๆ รวมทั้งช่องว่างและเยื้องแท็บ
- ช่องว่างก่อนและหลังตัวคั่นเริ่มต้นจะถูกละเว้น
จำนวนแถวในคอมพิวเตอร์บรรทัดคำสั่งที่นี่เอกสารโดยคำสั่ง -l WC:
$ wc -l << EOF 欢迎来到 本教程 www.w3write.com EOF 3 # 输出结果为 3 行 $
นอกจากนี้เรายังสามารถที่นี่เอกสารประกอบที่ใช้ในสคริปต์ตัวอย่างเช่น:
#!/bin/bash # author:本教程 # url:www.w3write.com cat << EOF 欢迎来到 本教程 www.w3write.com EOF
การดำเนินงานของสคริปดังกล่าวข้างต้นส่งออก:
欢迎来到 本教程 www.w3write.com
หากคุณต้องการที่จะดำเนินการคำสั่ง แต่ไม่ต้องการที่จะแสดงผลบนหน้าจอคุณสามารถเปลี่ยนเส้นทางการส่งออกไปยัง / dev / null:
$ command > /dev/null
/ dev / null เป็นไฟล์พิเศษเนื้อหาจะเขียนจะยกเลิกถ้าคุณพยายามที่จะอ่านจากแฟ้มแล้วสิ่งที่ไม่สามารถอ่าน อย่างไรก็ตาม / dev / null ไฟล์เป็นประโยชน์อย่างมากในการเปลี่ยนเส้นทางผลลัพธ์ของคำสั่งที่จะมันจะทำหน้าที่เป็น "ห้ามการส่งออก" ผล
หากคุณต้องการที่จะป้องกัน stdout และ stderr คุณสามารถเขียน:
$ command > /dev/null 2>&1
หมายเหตุ: 0 เข้ามาตรฐาน (STDIN) 1 คือออกมาตรฐาน (STDOUT) 2 เป็นข้อผิดพลาดออกมาตรฐาน (STDERR)