2011-09-14 9 views
11

में इनपुट पुष्टिकरणों को संभालना मैं उबंटू 11.04 पर कुछ चीजों को स्वचालित करने के लिए एक लिनक्स शैल स्क्रिप्ट लिख रहा हूं।लिनक्स खोल स्क्रिप्टिंग

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

हालांकि, मुझे नहीं पता कि मैं उन हिस्सों को कैसे संभालने जा रहा हूं जहां प्रक्रिया उपयोगकर्ता इनपुट के लिए पूछती है। उदाहरण के लिए, कुछ चीजें जिन्हें मैं एपीटी-के साथ स्थापित करता हूं, आपको एक पुष्टिकरण के लिए पूछता हूं i.e. (वाई) एसएस या (एन) ओ।

शैल स्क्रिप्ट में ऑटो-पुष्टिकरण को वास्तव में कैसे संभाला जाएगा यानी पूछे जाने पर हाँ या नहीं की पुष्टि करने के लिए?

+0

डुप्लिकेट? http://stackoverflow.com/questions/226703/how-do-i-prompt-for-input-in-a-linux-shell-script (उम्मीद है कि यह मदद करता है!) – heltonbiker

+0

@heltonbiker: मैं प्राप्त करने की कोशिश नहीं कर रहा हूं शेल स्क्रिप्ट के उपयोगकर्ता से इनपुट, मैं इनपुट को मजबूर करने/इनपुट करने की कोशिश कर रहा हूं, जहां भी मेरी स्क्रिप्ट आमतौर पर मुझे हां या कोई प्रतिक्रिया प्रदान करने के लिए प्रेरित करती है। –

+0

आप सही हैं, मैंने इसे गलत पढ़ा, क्षमा करें। – heltonbiker

उत्तर

15

yes | ./script सब कुछ के लिए y का उत्तर देगा।

echo N 
echo Y 
echo Y 
+1

इस विकल्प के लिए धन्यवाद। मुझे यकीन नहीं है कि मैं ऐसा करने के लिए स्क्रिप्ट को कैसे व्यवस्थित करूंगा, हालांकि क्या आपके पास कोड नमूना है? –

+0

यदि आप हमेशा 'हां' का जवाब नहीं देना चाहते हैं, तो मुझे वास्तव में आपका प्रश्न नहीं मिलता है, क्योंकि यह पूरी तरह से मामला-निर्भर है। यदि आप किसी स्क्रिप्ट पर "हां हां नहीं" का जवाब देना चाहते हैं, तो बस: 'printf "y \ ny \ nn \ n" |/your_script' या प्रत्येक उत्तर को मुद्रित करने के लिए पृथक रेखाओं के साथ एक साधारण स्क्रिप्ट लिखें, और फिर: './answer_script | ।/the_script' – wormsparty

+0

बहुत बहुत धन्यवाद। मुझे लगता है कि मेरे पास अब कई विकल्प हैं यदि मैं अलग-अलग संकेतों के लिए अलग-अलग जवाब देना चाहता हूं। यह ऐसा करने का सबसे शानदार तरीका प्रतीत होता है जो मैं करना चाहता हूं कि मुझे केवल स्क्रिप्ट के साथ इसे कॉल करने की आवश्यकता है। –

2

एप के लिए, सही जवाब सही पैरामीटर के साथ अपने debconf डेटाबेस को "अनुमानित" करना है। यदि Debconf को अपने डेटाबेस से जवाब मिल जाता है, तो यह नहीं पूछेगा। यह भी देखें http://www.debian-administration.org/articles/394

4

आमतौर पर आप इस तरह के इंटरैक्टिव प्रोग्राम को सभी सवालों के जवाब देने के लिए एक विकल्प के साथ कॉल कर सकते हैं। उदाहरण के लिए, आप apt-get पर -y के साथ कॉल कर सकते हैं। आदमी पृष्ठ से:

-y, --yes, --assume-हाँ स्वत: हाँ संकेतों के लिए; सभी संकेतों के उत्तर के रूप में "हां" मानें और गैर-संवादात्मक रूप से चलाएं।

+0

धन्यवाद। ये वही है जिसे मैं ढूंढ रहा था। –

1

Expect प्रयास करें यह हो सकता है आप के लिए क्या देख रहे:

अन्यथा, एक स्क्रिप्ट है कि जवाब आप चाहते हैं प्रिंट, जैसे लिखें।

+0

इसके लिए बहुत बहुत धन्यवाद, यह बहुत दिलचस्प लग रहा है। क्या मुझे यह जानना होगा कि प्रॉम्प्ट क्या होगा यानी यदि मैं अपनी शेल स्क्रिप्ट में चलाता हूं तो कुछ ऐसा करने जा रहा है जैसे "अपनी जन्मतिथि दर्ज करें:", मुझे उम्मीद लिखनी होगी "अपनी जन्मतिथि दर्ज करें : "ठीक उसी तरह के लिए पूछने जा रहा है ?! –

+0

जहां तक ​​मुझे पता है - हाँ – LordDoskias

संबंधित मुद्दे