ฉันรู้ว่าฉันสามารถเปลี่ยนเส้นทางข้อความผิดพลาดจากคำสั่งไปยังการ/dev/nullใช้ไวยากรณ์ต่อไปนี้:
command arg1 arg2 2>/dev/null
แต่มีวิธีการทำเช่นนี้โดยค่าเริ่มต้นเพื่อให้ข้อความแสดงข้อผิดพลาดเสมอไป/dev/nullเว้นแต่ฉันระบุเป็นอย่างอื่น?
1
ในระยะสั้น: ใช่ - เปลี่ยนเส้นทาง / dev / stderr ไปยัง / dev / null แต่ถ้าคุณไม่สามารถเข้าใจได้ด้วยตัวเองคุณไม่ควรลองเพราะคุณมีแนวโน้มที่จะทำลายบางสิ่งบางอย่างที่ร้ายแรงกว่าความสำเร็จ
—
Benubird
@Benubird stderr! = / dev / stderr การเปลี่ยนเส้นทางไฟล์นั้นจะไม่ทำอะไรเลย ไฟล์ใน / dev / เป็นเพียงเพื่อความสะดวก
—
Chris Down
@ChrisDown คุณพูดถูก / dev / stderr เป็นแค่ลิงค์ ยังมีอีกหลายกระบวนการที่เขียนลงไปแทนที่จะเป็น fd / 2 ซึ่งคุณสามารถเปลี่ยนเส้นทางได้ มันซับซ้อนมากขึ้นจากตรงนั้น - ซึ่งเป็นเหตุผลว่าทำไมฉันถึงแสดงความคิดเห็นแทนคำตอบ :)
—
Benubird