मैं whiptail का उपयोग करने की कोशिश कर रहा हूं क्योंकि यह dialog का हल्का विकल्प है और अधिकांश सिस्टमों में डिफ़ॉल्ट रूप से स्थापित किया जाता है (यानी, लोगों को चारों ओर जाना नहीं है और इसे इंस्टॉल करना है या नहीं, अगर इसे "भूल गया" डिफ़ॉल्ट रूप से)। मैंने यहां कुछ उदाहरणों के लिए question #1562666 चेक किया है, लेकिन मैं आउटपुट को रीडायरेक्ट करने के लिए एक विकल्प की तलाश में हूं ताकि डिस्क पर लिखने के बजाय पर्यावरण चर सेट हो।whiptail: आउटपुट वैरिएबल में आउटपुट को रीडायरेक्ट कैसे करें?
उदाहरण के लिए, जब मैं संवाद के साथ प्रयास करें, यह काम करता है (मैं संवाद बॉक्स देखते हैं, और एक वातावरण चर सेट किया गया है):
result=$(dialog --output-fd 1 --inputbox "Enter some text" 10 30)
echo Result=$result
हालांकि, इस के स्थान पर whiptail का उपयोग करते समय काम नहीं करता है संवाद, क्योंकि संवाद बॉक्स कभी दिखाई नहीं देता है। मैं एक डिस्क फ़ाइल करने के लिए इसे पुन: निर्देशित और इसे पढ़ा, उदाहरण के लिए के लिए है:
result=$(tempfile) ; chmod go-rw $result
whiptail --inputbox "Enter some text" 10 30 2>$result
echo Result=$(cat $result)
rm $result
यह काम करता है, और मैं (इसे हटाने जब स्क्रिप्ट समाप्त होता है) समाप्त करने के लिए शुरू से ही एक ही tempfile उपयोग कर सकते हैं। लेकिन यह सिर्फ इसके लिए डिस्क का उपयोग करने के लिए मजबूर होना अजीब लगता है, इसे सभी स्मृति में रखने के बजाय (एक पर्यावरण परिवर्तक पर रीडायरेक्ट करना)।
तो मैं पूछ रहा हूं: क्या मैं कुछ भूल रहा हूं - या क्या मैं वास्तव में को whiptail का उपयोग करते समय डिस्क का उपयोग करना है?
आपकी प्रतिक्रिया के लिए अग्रिम धन्यवाद।
यह जब भी whiptail है की तरह लगता है अपने stdin/stdout पुनर्निर्देशित, यह नहीं दिखाता है (चाहे $ (...) या ... |) के साथ। आपका समाधान whiptail के व्यवहार के रूप में बहुत अच्छा लग रहा है। बीटीडब्ल्यू, मेरी डेबियन मशीन पर, मेरे पास व्हीप्टाइल है लेकिन डिफ़ॉल्ट रूप से कोई संवाद नहीं है, ओपन्यूज पर, मेरे पास संवाद है और आधिकारिक भंडार में कोई मौजूदा व्हीप्टाइल नहीं है। – Zeograd
@ ज़ीग्राड कम से कम आरएचईएल व्हिप्टाइल पर "नया" पैकेज आता है। – Kimvais
दाएं, thx Kimvais। "zypper search whiptail" मुझ पर असफल रहा, भले ही जानकारी यह बता रही हो कि – Zeograd