क्या बैश स्क्रिप्ट स्वचालित रूप से संकेतों को संभालती है जो आम तौर पर उपयोगकर्ता को डिफ़ॉल्ट कार्रवाइयों के साथ प्रस्तुत की जाती है? वर्तमान में मैं एक इन-हाउस टूल को कॉल करने के लिए एक बैश स्क्रिप्ट का उपयोग कर रहा हूं जो क्रियाओं को पूरा करने के लिए उपयोगकर्ता को संकेत देता है (वाई/एन के लिए संकेत), हालांकि जिस स्क्रिप्ट को मैं लिख रहा हूं वह पूरी तरह से "हैंड-ऑफ" होना चाहिए, इसलिए प्रोग्राम को निष्पादन जारी रखने की अनुमति देने के लिए मुझे Y|N
भेजने के लिए एक तरीका चाहिए। क्या यह संभव है?बैश स्क्रिप्ट उत्तर इंटरैक्टिव संकेत
उत्तर
यह "स्वत: पूर्णता" नहीं है, यह स्वचालन है। इन चीजों के लिए एक आम उपकरण Expect कहा जाता है।
आप yes
से केवल पाइपिंग इनपुट से भी दूर हो सकते हैं।
दुर्भाग्य से मैं उम्मीद का उपयोग नहीं कर सकता क्योंकि यह सिस्टम चलाने पर कड़े स्थान की आवश्यकता है इसलिए मैं अतिरिक्त पैकेज नहीं जोड़ सकता, लेकिन चाल में 'हाँ' पाइपिंग, सौभाग्य से सभी संकेतों को केवल 'y' वैसे भी। धन्यवाद। – tj111
हालांकि 'हां | कमांड 'हमेशा काम नहीं कर सकता है। अगर यह सिर्फ इंस्टॉलेशन उद्देश्य के लिए है तो मैं '-y' का उपयोग करके गिर गया एक बेहतर और पसंदीदा विकल्प है। –
एक साधारण
echo "Y Y N N Y N Y Y N" | ./your_script
यह आपको "Y" या अपनी स्क्रिप्ट को "एन" के किसी भी क्रम पारित करने के लिए अनुमति देते हैं।
अगर मुझे कोई 'एन' भेजने की ज़रूरत है, तो मैंने इस विधि का उपयोग किया होगा, लेकिन मुझे केवल वाई की जरूरत है इसलिए मैं 'हाँ' के साथ गया। बहुत बुरा मैं दो उत्तरों को स्वीकार नहीं कर सकता, क्योंकि वे दोनों सही हैं। – tj111
;) यदि आपको कभी भी कुछ 'एन' भेजने की ज़रूरत है तो अब आपके पास ऐसा करने का एक अच्छा तरीका है। –
यह कामकाज मेरे आलसी सीएलआई व्यवहार के लिए शानदार है। धन्यवाद! – mbb
मुझे इनपुट भेजने का सबसे अच्छा तरीका मिला है जो आपको आवश्यक इनपुट के साथ पास करने के लिए बिल्ली और एक टेक्स्ट फ़ाइल का उपयोग करना है।
cat "input.txt" | ./Script.sh
आप केवल है, तो Y भेजने के लिए:
$> yes Y |./your_script
आप केवल है, तो भेजने के लिए न:
$> yes N |./yout_script
मेरी स्थिति में मैं Y या N बिना कुछ सवालों के जवाब देने की जरूरत लेकिन पाठ या खाली के साथ। मुझे अपनी स्थिति में ऐसा करने का सबसे अच्छा तरीका एक शेलस्क्रिप्ट फ़ाइल बनाना था। मेरे मामले में मैंने इसे autocomplete.sh
मुझे एक सिद्धांत स्कीमा निर्यातक के लिए कुछ प्रश्नों के उत्तर देने की आवश्यकता थी, इसलिए मेरी फ़ाइल इस तरह दिखाई दे रही थी।
-
php vendor/bin/mysql-workbench-schema-export mysqlworkbenchfile.mwb ./doctrine << EOF
`#Export to Doctrine Annotation Format` 1
`#Would you like to change the setup configuration before exporting` y
`#Log to console` y
`#Log file` testing.log
`#Filename [%entity%.%extension%]`
`#Indentation [4]`
`#Use tabs [no]`
`#Eol delimeter (win, unix) [win]`
`#Backup existing file [yes]`
`#Add generator info as comment [yes]`
`#Skip plural name checking [no]`
`#Use logged storage [no]`
`#Sort tables and views [yes]`
`#Export only table categorized []`
`#Enhance many to many detection [yes]`
`#Skip many to many tables [yes]`
`#Bundle namespace []`
`#Entity namespace []`
`#Repository namespace []`
`#Use automatic repository [yes]`
`#Skip column with relation [no]`
`#Related var name format [%name%%related%]`
`#Nullable attribute (auto, always) [auto]`
`#Generated value strategy (auto, identity, sequence, table, none) [auto]`
`#Default cascade (persist, remove, detach, merge, all, refresh,) [no]`
`#Use annotation prefix [ORM\]`
`#Skip getter and setter [no]`
`#Generate entity serialization [yes]`
`#Generate extendable entity [no]` y
`#Quote identifier strategy (auto, always, none) [auto]`
`#Extends class []`
`#Property typehint [no]`
EOF
बात मैं इस रणनीति आप टिप्पणी कर सकते हैं है कि आपके जवाब हैं और EOF एक रिक्त पंक्ति का उपयोग कर के बारे में की तरह सिर्फ इतना है कि (डिफ़ॉल्ट जवाब है - यह एक उदाहरण केवल है)। इन निर्यातकों के उपकरण के जवाब देने के लिए इस निर्यातक उपकरण के अपने JSON समकक्ष के रास्ते से बाहर निकलता है, लेकिन मुझे लगा कि मैंने ऐसा करने के बाद बाहर किया है)।
स्क्रिप्ट को चलाने के लिए बस अपनी इच्छित निर्देशिका में रहें और टर्मिनल में 'sh autocomplete.sh'
चलाएं।
संक्षेप में वापसी लाइन्स के साथ संयोजन में < < EOL & EOFका उपयोग कर आप आवश्यक के रूप में शीघ्र से प्रत्येक सवाल का जवाब कर सकते हैं द्वारा। प्रत्येक नई लाइन एक नया उत्तर है।
मेरा उदाहरण दिखाता है कि यह 'चरित्र का उपयोग करके टिप्पणियों के साथ कैसे किया जा सकता है ताकि आपको याद रखें कि प्रत्येक चरण क्या है।
ध्यान दें कि इस विधि का अन्य लाभ यह है कि आप अधिक वाई या एन के साथ उत्तर दे सकते हैं ... वास्तव में आप रिक्त स्थान के साथ जवाब दे सकते हैं!
उम्मीद है कि यह किसी की मदद करेगा।
कृपया मुझे बताएं कि डाउनवोट क्यों, यह पता लगाने में काफी समय लगा कि यह जवाब था (और केवल मेरे मामले में जवाब था)। मैंने इसे समुदाय के साथ साझा करने के लिए यहां रखा और सवाल पूछने वाले को लक्ष्य पर मृत होना चाहिए। "क्या बैश स्क्रिप्ट स्वचालित रूप से उन संकेतों को संभालती है जो आम तौर पर उपयोगकर्ता को डिफ़ॉल्ट क्रियाओं के साथ प्रस्तुत की जाती हैं?", हाँ जो मैंने ऊपर दिया है उसका उपयोग करने का एक तरीका है। –
- 1. असिंक्रोनस इंटरैक्टिव पायथन स्क्रिप्ट
- 2. बैश स्क्रिप्ट त्रुटि
- 3. बैश स्क्रिप्ट से पाइथन स्क्रिप्ट
- 4. बैश स्क्रिप्ट
- 5. बैश स्क्रिप्ट
- 6. बैश स्क्रिप्ट
- 7. बैश स्क्रिप्ट
- 8. बैश स्क्रिप्ट
- 9. बैश स्क्रिप्ट
- 10. बैश स्क्रिप्ट
- 11. बैश स्क्रिप्ट
- 12. बैश स्क्रिप्ट
- 13. बैश स्क्रिप्ट
- 14. बैश स्क्रिप्ट
- 15. बैश स्क्रिप्ट
- 16. बैश स्क्रिप्ट
- 17. बैश स्क्रिप्ट
- 18. बैश स्क्रिप्ट
- 19. बैश स्क्रिप्ट
- 20. पाइथन स्क्रिप्ट से बैश स्क्रिप्ट
- 21. बैश, आदेश निष्पादित करें लेकिन इंटरैक्टिव सत्र
- 22. इनलाइन बैश स्क्रिप्ट चर
- 23. एसएड बैश स्क्रिप्ट
- 24. बैश स्क्रिप्ट- एक वैरिएबल
- 25. वैज्ञानिक नोटेशन बैश स्क्रिप्ट
- 26. बैश स्क्रिप्ट टर्मिनल
- 27. बैश स्क्रिप्ट - पाठ
- 28. एक बैश स्क्रिप्ट
- 29. बश स्क्रिप्ट उबंटू बैश
- 30. बैश स्क्रिप्ट आउटपुट इंडेंटिंग
यह "स्वत: पूर्णता" नहीं है ... जैसे @unwind कहते हैं, यह "स्वचालन" है – benzaita
ऐसा करने के लिए 'yes' का उपयोग करने का उदाहरण: http://unix.stackexchange.com/questions/47344/the-yes- कमांड # comment65866_47344 – Droogans