ฉันพยายามรันโปรแกรมจาวาตัวอย่างโดยใช้บรรทัดคำสั่งต่อไปนี้ อย่างไรก็ตามฉันไม่ทราบว่าส่วนต่อท้ายที่< /dev/null &
ใช้มีไว้เพื่ออะไร
java -cp /home/weka.jar weka.classifiers.trees.J48 –t train_file >& log < /dev/null &
ฉันพยายามรันโปรแกรมจาวาตัวอย่างโดยใช้บรรทัดคำสั่งต่อไปนี้ อย่างไรก็ตามฉันไม่ทราบว่าส่วนต่อท้ายที่< /dev/null &
ใช้มีไว้เพื่ออะไร
java -cp /home/weka.jar weka.classifiers.trees.J48 –t train_file >& log < /dev/null &
คำตอบ:
< /dev/null
ใช้เพื่อส่ง EOF ไปยังโปรแกรมทันทีเพื่อที่จะไม่รออินพุต ( /dev/null
อุปกรณ์ null เป็นไฟล์พิเศษที่ทิ้งข้อมูลทั้งหมดที่เขียนไป แต่รายงานว่าการดำเนินการเขียนสำเร็จและไม่ให้ข้อมูลกับ กระบวนการใด ๆ ที่อ่านจากมันให้ EOF ทันที) &
เป็นตัวคั่นคำสั่งชนิดพิเศษที่ใช้เพื่อแบ็กกราวน์กระบวนการก่อนหน้า
ฉันไม่รู้ว่าจะต้องเรียกใช้โปรแกรมด้วยวิธีนี้โดยไม่ทราบว่าโปรแกรมถูกเรียกใช้อย่างไร
</dev/null
ตัดการเชื่อมต่ออินพุตของโปรแกรมจากเทอร์มินัล บางโปรแกรมมีปฏิกิริยาแตกต่างกันไปตามสิ่งที่อินพุตมาตรฐานเชื่อมต่อ ด้วยการเปลี่ยนเส้นทาง</dev/null
โปรแกรมสามารถบอกได้ว่าอินพุตของมันไม่ได้มาจากเทอร์มินัลและจะได้รับการบ่งชี้การสิ้นสุดไฟล์ทันทีถ้ามันพยายามอ่านจากอินพุตมาตรฐาน
การโลน&
ในตอนท้ายทำให้โปรแกรมทำงานในพื้นหลัง ซึ่งหมายความว่าคุณจะได้รับพรอมต์เชลล์ทันที หากไม่มี&
คุณจะได้รับพรอมต์เชลล์กลับมาเฉพาะเมื่อโปรแกรมดำเนินการเสร็จสิ้น
โปรดทราบว่าแบบสแตนด์อโลนไม่เกี่ยวข้องกับ&
เป็นโอเปอเรเตอร์การเปลี่ยนเส้นทาง (ใน tcsh, bash และ zsh) ซึ่งเปลี่ยนเส้นทางทั้งเอาต์พุตมาตรฐานของโปรแกรมและข้อผิดพลาดมาตรฐานของโปรแกรมไปยังชื่อไฟล์ที่ระบุหลังจากโอเปอเรเตอร์ (ที่นี่)>&
>&
log
กล่าวอีกนัยหนึ่งสิ่งที่เชลล์ทำเมื่อเห็นบรรทัดคำสั่งนี้คือ:
/dev/null
( อุปกรณ์ null )log
(การสร้างไฟล์หากยังไม่มีอยู่และตัดทอนหากมีอยู่)java
$PATH
-cp
, /home/weka.jar
, weka.classifiers.trees.J48
, –t
, train_file`