डबल कोट्स को डायलॉग में पास करने में परेशानी होना


0

मैं ऑडियो रिकॉर्डिंग को स्वचालित करने के लिए एक स्क्रिप्ट पर काम कर रहा हूं, 'संवाद' कमांड का उपयोग करके उचित रूप से नाम चैनलों के लिए एक इंटरैक्टिव मेनू बनाने के लिए। मुझे एक सरणी में चैनल नामों की एक सूची मिली है। मैं चाहता हूं कि फ़ॉर्म ख़ाली हो, लेकिन मैं संवाद करने के लिए सही पैरामीटर पास नहीं कर सकता।

यदि मैं उद्धरणों से बच जाता हूं, तो फॉर्म को वैसा ही दिखाई देना चाहिए, लेकिन उद्धरण इनपुट क्षेत्र में दिखाई देता है, यदि मैं उद्धरणों से नहीं बचता हूं, तो इसका परिणाम गड़बड़ हो जाता है, और अगर मैं कमांड को किसी अन्य फ़ाइल में गूंजता हूं और इसे निष्पादित करता हूं , यह ठीक वैसे ही काम करता है जैसे मैं चाहता हूं। मुझे यह पता लगाने में मदद की ज़रूरत है कि उस तरीके से निष्पादित करने के लिए संवाद कैसे प्राप्त करें।

यह कोड है:

#!/bin/bash
declare -a CHANNELS
CHANNELS=(meet george jetson his boy elroy daughter judy)

channameiter ()
{
        for i in ${!CHANNELS[@]};
        do
                echo  -e "${CHANNELS[$i]}:" $((i + 1)) 1 \'\' $((i + 1)) 25 30 30 \
        done
}

dialog --form "Channels" 30 60 16 `channameiter`

और यह एक और फ़ाइल के लिए गूँजने वाला कोड है, और फिर निष्पादित किया जाता है, जो सही तरीके से चलता है।

dialog --form Channels 30 60 16 meet: 1 1 "" 1 25 30 30 george: 2 1 "" 2 25 30 30 jetson: 3 1 "" 3 25 30 30 his: 4 1 "" 4 25 30 30 boy: 5 1 "" 5 25 30 30 elroy: 6 1 "" 6 25 30 30 daughter: 7 1 "" 7 25 30 30 judy: 8 1 "" 8 25 30 30

कोई विचार?

जवाबों:


2

यहाँ यह करने का एक तरीका है, जिसमें कमांड-लाइन आर्ग्युमेंट्स की सारणी का निर्माण किया गया है:

#!/bin/bash
args=(Channels 30 60 16)
i=0
for chan in meet george jetson his boy elroy daughter judy; do
   ((++i))
   args+=("$chan" $i 1 "" $i 25 30 30)
done
dialog --form "${args[@]}"

बेशक, यह CHANNELSआपके मूल के समान सरणी और पुनरावृत्ति तकनीक का उपयोग कर सकता है । (व्यक्तिगत रूप से, मुझे लगता है कि मैं कमांड-लाइन विकल्प से चैनल के नाम को स्क्रिप्ट में ले जाऊंगा, जिस स्थिति में आप बस लिख सकते हैं for chan; do।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.