क्योंकि ऐसा ही होना है।
<(...)
में bash
प्रक्रिया प्रतिस्थापन के लिए वाक्य रचना है। यह उसी ऑपरेटर से कॉपी किया गया है ksh
।
<
, (
, )
, |
, &
, ;
विशेष शाब्दिक टोकन में हैं bash
कि विभिन्न संयोजनों में विशेष ऑपरेटरों के रूप में उपयोग किया जाता है। <
, <(
, <<
, <&
... प्रत्येक उनकी भूमिका की है। <
पुनर्निर्देशन के लिए है। <file
, < file
एक फ़ाइल से इनपुट को पुनर्निर्देशित करेगा। <'(file)'
नामक फ़ाइल से इनपुट पुनर्निर्देशित करेगा (file)
, लेकिन <(file)
एक अलग ऑपरेटर है जो पुनर्निर्देशन ऑपरेटर नहीं है।
< (file)
इसके <
बाद होगा (file)
। उस संदर्भ में, में bash
, (file)
मान्य नहीं है। (...)
कुछ संदर्भों में एकल टोकन के रूप में मान्य किया जा सकता है:
(sub shell)
func () {
...
}
var=(foo bar)
लेकिन में नहीं
sort < (cmd)
में fish
खोल, यह अलग है। में fish
, (...)
आदेश प्रतिस्थापन (के बराबर के लिए है $(...)
में bash
)। और <
बॉर्न जैसे गोले में इनपुट पुनर्निर्देशन के लिए है।
तो में fish
:
sort <(echo file)
जैसा होगा:
sort < (echo file)
अर्थात्:
sort < file
लेकिन यह कुछ bash
प्रक्रिया प्रतिस्थापन से पूरी तरह से अलग है ।
में yash
खोल, एक और POSIX खोल, <(...)
के लिए नहीं है प्रक्रिया प्रतिस्थापन लेकिन के लिए प्रक्रिया पुनर्निर्देशन
वहाँ पर,
sort <(ls -l)
के लिए कम:
sort 0<(ls -l)
एक पुनर्निर्देशन ऑपरेटर है। यह कम या ज्यादा के बराबर है:
ls -l | sort
जबकि bash
, <(ls -l)
एक पाइप के मार्ग में विस्तारित है, इसलिए यह अधिक पसंद है:
ls -l | sort /dev/fd/0
में zsh
, (...)
एक ग्लोबिंग ऑपरेटर के रूप में ओवरलोड किया गया है ( और फ़ाइलों का (*.txt|*.png)
विस्तार होगा ) और ग्लोब क्वालिफायर के रूप में ( उदाहरण के लिए निर्देशिका फ़ाइलों का विस्तार होता है)।txt
png
*(/)
में zsh
, में:
sort < (ls -l)
यही कारण है कि (ls -l)
एक ग्लोब क्वालीफायर के रूप में माना जाएगा। l
ग्लोब लिंक्स की संख्या पर मैच के लिए है और के बाद एक नंबर की उम्मीद क्वालीफायर l
(के रूप में ls -ld ./*(l2)
2 लिंक के साथ फ़ाइलों की सूची है), तो यह है कि के कारण है कि आप एक मिल zsh: number expected
त्रुटि।
sort < (w)
zsh: no matches found: (w)
इसके बजाय एक त्रुटि दी गई होगी जो (w)
खाली नाम वाली फाइलों से मेल खाती है जो कि लेखन योग्य हैं।
sort < (w|cat)
वर्तमान निर्देशिका में w
और / या cat
फ़ाइलों की सामग्री को सॉर्ट किया गया होता ...