कमान प्रतिस्थापन
एक अन्य विकल्प कमांड प्रतिस्थापन का उपयोग करना है । कमांड को लपेटने से कमांड $()
चलेगी और कमांड को उसके आउटपुट से बदल देगी।
cat $(find ./inhere -size 1033c 2> /dev/null)
हो जाएगा
cat ./inhere/file1 .inhere/file3
यह कम या ज्यादा समतुल्य पुरानी शैली का उपयोग करने के लिए वापस टिक के साथ कमांड लपेटने के लिए है:
cat `find ./inhere -size 1033c 2> /dev/null`
ऊपर दिए गए डॉक्स से अधिक जानकारी
बैश एक उप-वातावरण में कमांड निष्पादित करके और कमांड के प्रतिस्थापन को कमांड आउटपुट के साथ आउटपुट के कमांड को निष्पादित करता है, जिसमें किसी भी नए ट्रेसिंग को हटा दिया जाता है। एंबेडेड न्यूलाइन्स को हटाया नहीं जाता है, लेकिन शब्द विभाजन के दौरान उन्हें हटा दिया जा सकता है। कमांड प्रतिस्थापन $(cat file)
को समकक्ष लेकिन तेजी से बदला जा सकता है $(< file)
।
जब प्रतिस्थापन के पुराने-शैली बैकक्वाटर फॉर्म का उपयोग किया जाता है, तो बैकस्लैश इसके शाब्दिक अर्थ को बरकरार रखता है $
, जब इसके बाद `
, या \
। बैकस्लैश से पहले नहीं लिया गया पहला बैककॉइन कमांड प्रतिस्थापन को समाप्त करता है। $(command)
प्रपत्र का उपयोग करते समय , कोष्ठकों के बीच के सभी अक्षर कमांड बनाते हैं; किसी के साथ विशेष व्यवहार नहीं किया जाता है।
आदेश प्रतिस्थापन को नेस्टेड किया जा सकता है। बैककोट फॉर्म का उपयोग करते समय घोंसला बनाने के लिए, बैकस्लैश के साथ आंतरिक बैकक्वाट्स से बचें।
यदि प्रतिस्थापन डबल कोट्स के भीतर दिखाई देता है, तो शब्द विभाजन और फ़ाइल नाम का विस्तार परिणामों पर नहीं किया जाता है।
उपयोग के कुछ अच्छे उदाहरणों के लिए यह अन्य उत्तर देखें ।