2012-07-26 11 views
8

मैं कुछ लिनक्स शैल स्क्रिप्ट लिख रहा हूं जो कुछ कोड को चारों ओर ले जाते हैं और यह अच्छा और सरल होगा यदि यह इंटरैक्टिव हो सकता है।इंटरेक्टिव शैल स्क्रिप्ट के साथ जेनकींस डील कैसे करता है?

दोष यह है कि मैं जेनकींस में इनमें से कुछ स्क्रिप्ट निष्पादित करना चाहता हूं और पूरी तरह से इस बात से निश्चित नहीं हूं कि जेनकिंस स्क्रिप्ट के भीतर उपयोगकर्ता को कैसे संकेत देता है। मैं इस पर कुछ भी नहीं ढूंढ पा रहा हूं और संसाधनों के पास आगे बढ़ने और इसका परीक्षण करने के लिए संसाधन नहीं हैं, इसलिए किसी भी सलाह की सराहना की जाएगी।

धन्यवाद लोग

+0

आप [उम्मीद (1)] (http://linux.die.net/man/1/expect) को देखना चाहते हैं। –

+0

धन्यवाद। मैं उम्मीद का उपयोग कर रहा हूं, लेकिन ऐसा करने के लिए जो मैं चाहता हूं वह कुछ अजीब काम-आस-पास लगता है जो मैं – degausser

+0

से बचाना चाहूंगा यह एक क्लासिक मुद्दा है। इंटरेक्टिव सामान मानव कॉलर्स के लिए, सीमित अर्थ में, अच्छा है। लेकिन बैच सामान ऑटोमेशन (स्क्रिप्ट कॉलर्स) के लिए बहुत अच्छा है। मैं बैच उपयोग के लिए लगभग हर चीज लिखने का सुझाव देता हूं, वास्तव में, जब तक आप किसी वर्डप्रोसेसर या किसी चीज़ पर काम नहीं कर रहे हैं, क्योंकि लंबे समय तक बैच स्क्रिप्ट की बेहतर कंपोज़िबिलिटी एक बड़ी जीत होती है। यह सिर्फ इतना तथ्य नहीं है कि आप बैच स्क्रिप्ट पर अधिक व्यावहारिक रूप से निर्माण कर सकते हैं; बैच इंटरफेस के साथ स्वचालित परीक्षण करना भी बहुत आसान है, इसलिए कोड अधिक विश्वसनीय होने के समाप्त होता है। – user1277476

उत्तर

7

एक आदेश है कि जेनकींस कार्यान्वित इनपुट की उम्मीद है, यह सिर्फ वहाँ बैठते हैं और निवेश के लिए इंतजार करेंगे। नौकरी लटकाएगी और आपको इसे मैन्युअल रूप से मारने की आवश्यकता होगी। इसके साथ मुकाबला करने का एक तरीका कमांड में अपेक्षित इनपुट को पाइप करना है, उदा।

echo "input" | command 

या

command < file_with_input 
+0

त्वरित प्रतिक्रिया के लिए धन्यवाद। मैं वास्तव में कुछ लिखने की कोशिश कर रहा हूं जैसे 'echo "पासवर्ड दर्ज करें:"; पासवर्ड पढ़ें 'और उपयोगकर्ता ने फ्लाई पर अपना पासवर्ड दर्ज किया है। ऐसा लगता है कि आपने ऊपर जो कहा है उससे स्वीकार्य है (?) – degausser

+1

'पढ़ा' तब तक अवरुद्ध होगा जब तक आप मैन्युअल रूप से नौकरी को मार नहीं देते। यह देखते हुए कि आप पर्यावरण परिवर्तनीय में परिणाम संग्रहीत कर रहे हैं, आप जेनकिन्स नौकरी के अनुसार उस चर को सेट कर सकते हैं और स्क्रिप्ट में केवल वैरिएबल सेट नहीं होने पर उपयोगकर्ता इनपुट की आवश्यकता होती है। –

+0

क्षमा करें, मुझे और अधिक स्पष्ट होना चाहिए था। वास्तविक आदेश एक 'scp' है, जब तक कि आप उम्मीद न करें कि यह एक संकेत को मजबूर करता है। आप कहते हैं कि एक प्रॉम्प्ट "ब्लॉक" होगा। मुझे एहसास है कि यह प्रक्रिया को रोक देगा और इनपुट की प्रतीक्षा करेगा, लेकिन क्या उपयोगकर्ता जेनकींस के भीतर उस संकेत का जवाब दे पाएगा? (यदि आप नहीं बता सके तो जेनकींस नोब का थोड़ा सा) – degausser

-1

आप जेनकींस से इंटरैक्टिव खोल स्क्रिप्ट चला सकते हैं।

यहाँ उस के लिए प्रलेखन है:

http://www.buildengineers.org:8080/display/Tools/Running+interactive+Shell+Script+in+Jenkins

<<LimitString विकल्प का उपयोग करके आप कमांड लाइन से खोल स्क्रिप्ट चला सकते हैं।

आप जेनकींस कॉन्फ़िगरेशन में निष्पादन अनुभाग में इनपुट दे सकते हैं।

उम्मीद है कि इससे मदद मिलती है।

+3

अच्छा उदाहरण क्यों केवल उत्तरों को लिंक करना इतना बुरा है: आपका लिंक नीचे है – GhostCat

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