मैं i3 में रेंजर नामक फ़ाइल प्रबंधक का उपयोग कर रहा हूं। मैं जो मूल कार्य कर रहा हूं वह मेरी दैनिक कार्यप्रवाह स्क्रिप्ट के लिए "एक फ़ोल्डर का चयन करें" है। इसलिए मैंने एक सामान्य स्क्रिप्ट बनाई, और इसे अपनी सभी लिपियों में इस्तेमाल किया।

नीचे दिखाई गई मेरी फ़ोल्डर चयन स्क्रिप्ट फ़ोल्डरसेलेक्ट नामक फ़ाइल के अंतर्गत सहेजी गई है। नीचे दिखाया गया स्क्रिप्ट

#!/usr/bin/env bash
TMP="$(mktemp)"
ranger --show-only-dir --choosedir="$TMP"
cat $TMP
rm  -f $TMP

जब मैं इस स्क्रिप्ट को अन्य स्क्रिप्ट में शामिल करता हूं जैसा कि नीचे दिखाया गया है।

चयनितपथ = "$ (फ़ोल्डर चयन)"

स्क्रिप्ट लटकती है और कुछ भी निष्पादित नहीं करती है। कृपया मुझे बताएं कि इसका क्या कारण हो सकता है।

0
Vipin 11 जिंदा 2020, 09:29

1 उत्तर

सबसे बढ़िया उत्तर

रेंजर अपने इंटरफ़ेस को प्रदर्शित करने के लिए stdout का उपयोग करता है और $() एक चर के लिए stdout को पुनर्निर्देशित करता है, इस वजह से आपको इंटरफ़ेस दिखाई नहीं देता है।

इंटरफ़ेस प्रदर्शित करने के लिए आपको stdout को stderr पर पुनर्निर्देशित करना होगा:

ranger --show-only-dirs --choosedir="$TMP" 1>&2
0
vonschlager 11 जिंदा 2020, 13:53