bash
ดูเหมือนจะไม่บ่นถ้าคุณเรียกใช้คำสั่งเช่น
$ < some-file-that-exists
ดูเหมือนจะไม่มีอะไรเกิดขึ้น
คุณสามารถใช้
$ <<<"any string"
และแม้แต่กระบวนการทดแทน
แล้วมันทำอะไรกันแน่และทำไมมันถึงได้รับอนุญาต มันจะมีประโยชน์สำหรับอะไร?
bash
less
bash
ดูเหมือนจะไม่บ่นถ้าคุณเรียกใช้คำสั่งเช่น
$ < some-file-that-exists
ดูเหมือนจะไม่มีอะไรเกิดขึ้น
คุณสามารถใช้
$ <<<"any string"
และแม้แต่กระบวนการทดแทน
แล้วมันทำอะไรกันแน่และทำไมมันถึงได้รับอนุญาต มันจะมีประโยชน์สำหรับอะไร?
bash
less
คำตอบ:
<
ตั้งค่าการเปลี่ยนเส้นทางสำหรับคำสั่งที่อาจเกิดขึ้นก่อนหรือหลังคำแนะนำการเปลี่ยนเส้นทาง กล่าวคือ
$ < file wc
ทำงานได้ดีเช่นกัน
$ wc < file
แต่ถ้าคุณไม่ให้คำสั่ง bash จะทำการเปลี่ยนเส้นทางและไม่ทำอะไรเลย สำหรับการเปลี่ยนเส้นทางอินพุตจำนวนนี้เป็นสิ่งที่คุณเห็นไม่มีอะไรเลยถ้าไฟล์นั้นมีอยู่และอ่านได้ หากไฟล์ไม่มีอยู่หรือไม่สามารถอ่านได้ทุบตีจะส่งสัญญาณข้อผิดพลาด สำหรับการเปลี่ยนเส้นทางเอาต์พุตไฟล์เอาต์พุตจะถูกสร้างขึ้นหากไม่มีอยู่ ไฟล์เอาต์พุตใด ๆ ที่มีอยู่จะถูกตัดถ้า>
ใช้ ไม่มีการตัดถ้า>>
ใช้
< file wc
กับwc < file
?
<อ่านจาก stdin โดยค่าเริ่มต้นหรือไฟล์ การแสดงออกของคุณไม่ได้ทำอะไรกับอินพุตเพราะคุณไม่ได้ทำอะไรหลังจากอ่าน
ถ้าคุณทำ <some-file-that-exist> outputfile ในตอนท้ายคุณจะเห็นว่าคุณเพิ่งอ่านเนื้อหาของไฟล์แรกและเขียนไปยังไฟล์ที่สอง
<<< นี่คือรูปแบบ doc ดังนั้นจึงอ่านจากสตริงแทนไฟล์ แมว <<< "สตริงใด ๆ " เพื่อดูสิ่งที่คุณได้อ่าน
<
จะทำให้คุณมีข้อผิดพลาด (zsh: parse error near `\n'
) เป็นอาร์กิวเมนต์ไม่ได้รับ