เหตุใดการแทนที่กระบวนการ BASH จึงไม่ทำงานกับคำสั่งบางอย่าง
ในบางโอกาสการทดแทนกระบวนการจะไม่ทำงานตามที่คาดไว้ นี่คือตัวอย่าง: การป้อนข้อมูล: gcc <(echo 'int main(){return 0;}') เอาท์พุท: /dev/fd/63: file not recognized: Illegal seek collect2: error: ld returned 1 exit status การป้อนข้อมูล: แต่มันทำงานได้อย่างที่คาดไว้เมื่อใช้กับคำสั่งอื่น: grep main <(echo 'int main(){return 0;}') เอาท์พุท: int main(){return 0;} ฉันได้สังเกตเห็นความล้มเหลวที่คล้ายกันกับคำสั่งอื่น ๆ (เช่นคำสั่งคาดหวังว่าไฟล์จากการทดแทนกระบวนการไม่สามารถใช้/dev/fd/63หรือคล้ายกัน) ความล้มเหลวด้วยgccนี้เป็นเพียงล่าสุด มีกฎทั่วไปบางอย่างที่ฉันควรทราบเพื่อกำหนดว่าเมื่อใดการทดแทนกระบวนการจะล้มเหลวด้วยวิธีนี้และไม่ควรใช้? ฉันใช้ BASH รุ่นนี้บน Ubuntu 12.04 (ฉันเคยเห็นใน arch และ debian): GNU bash, …