क्या स्क्रिप्ट में कमांड विकल्प जोड़ने जैसे चर के माध्यम से stdout और stderr को पुनर्निर्देशित करने का कोई तरीका है?
उदाहरण के लिए मेरे पास एक स्क्रिप्ट है:
#!/bin/bash -x
TEST=">/dev/null 2>&1"
OPT='-p -v'
mkdir $OPT 123/123/123 $TEST
मैं देख सकता हूं कि ऑप्ट को -p
बिना किसी समस्या के बदल दिया गया है और बैश इसे विकल्प के रूप में व्याख्या करता है। लेकिन डायरेक्टरी नाम के रूप में पुनर्निर्देशन व्याख्या करता है।
$ ./test.sh
+ TEST='>/dev/null 2>&1'
+ OPT='-p -v'
+ mkdir -p -v 123/123/123 '>/dev/null' '2>&1'
mkdir: created directory `123/123'
mkdir: created directory `123/123/123'
mkdir: created directory `>/dev'
mkdir: created directory `>/dev/null'
mkdir: created directory `2>&1'
क्या बाश कहने का कोई तरीका है, कि $ VAR पुनर्निर्देशन है, डायर नाम नहीं।
पुनश्च। हो सकता है कि मैं गलत रास्ते पर हूं, लेकिन मैं अपनी स्क्रिप्ट से वैकल्पिक क्रिया या गैर क्रिया आउटपुट बनाना चाहता हूं। लेकिन मुझे नॉन-वर्बोस मोड में भी कुछ आउटपुट की आवश्यकता है, इसलिए मैं पूरी स्क्रिप्ट और स्टडर को रीडायरेक्ट नहीं कर सकता, केवल मेरी स्क्रिप्ट के अंदर कुछ कमांड से।