ฉันได้ลองทุกวิธีเพื่อเปลี่ยนเส้นทางทั้งไปstdout
และไม่ประสบความสำเร็จ ผมมีเกือบทั้งทุบตีชีวิตการทำงานของฉันที่ฉันไม่เคยมีปัญหานี้ด้วย แต่เป็นครั้งแรกใน BSD ฉันติดอยู่กับstderr
/dev/null
/bin/sh
สิ่งที่ฉันได้ลอง:
if ls ./python* 2> /dev/null; then
echo found Python
fi
... ซึ่งใช้งานได้; ถ้า Python ไม่มีอยู่มันจะปิดข้อความแสดงข้อผิดพลาดจาก ls อย่างไรก็ตามถ้าpython.tgz
มีอยู่บรรทัดที่มีเอาต์พุตซึ่งมีลักษณะดังนี้:
# ./test.sh
./python-2.7.3p1.tgz
ฉันได้ลองแล้ว:
if ls ./python* &> /dev/null; then
echo found Python
fi
และ
if ls ./python* 2>1 > /dev/null; then
echo found Python
fi
และ
if ls ./python* > /dev/null; then
echo found Python
fi
ไม่มีอะไรได้ผลจริงๆ ฉันสามารถเปลี่ยนเส้นทางหนึ่งในผลลัพธ์ไม่ใช่ทั้งสองอย่างในเวลาเดียวกัน
/bin/sh
ได้ดำเนินการ&>/dev/null
ไวยากรณ์ aparently ไม่เป็นเช่นนั้นหรือฉันมีรุ่นเก่า (ซึ่งผมไม่สามารถสะท้อนในทางใดทางวิ่ง OpenBSD 5.3 สรรพสินค้าใหญ่ดังนั้นควรจะเพียงพอ)