मैं इस समय किसी चीज पर काम कर रहा हूं और अभी मुझे आश्चर्य है कि क्या मैं जिस पर काम कर रहा हूं वह भी संभव है।

मैं जेनकींस से शेल स्क्रिप्ट में एसएसएच करना चाहता हूं और वेरिएबल का उपयोग एक आरसी फाइल बनाता है जो एक गिट रिपोजिटरी में है। (शेल स्क्रिप्ट और आरसी फाइल एक ही रेपो में हैं)

मैंने जो कुछ भी करने की कोशिश की वह काम नहीं करता है और अब मैं सोच रहा हूं कि यह भी संभव है या नहीं।

यहां मेरी स्थानीय लिपि है लेकिन मुझे जेनकींस पर एक ही आउटपुट मिलता है।

docker exec -it test-container bash 'sed -f <(printf "s/${DOMAIN}\.%s/www.&.${DOMAIN_SUFFIX_STAGE}/g\n" ${LANG_KEYS}) /var/www/foo/sed/test.txt > /var/www/foo/sed/new-2.txt'

कोई फर्क नहीं पड़ता कि मैं क्या करता हूं मुझे यह त्रुटि मिलती है

bash: sed -f <(printf "s/${DOMAIN}\.%s/www.&.${DOMAIN_SUFFIX_STAGE}/g\n" ${LANG_KEYS}) /var/www/foo/sed/test.txt > /var/www/foo/sed/new-2.txt: No such file or directory

और हाँ मैं पुष्टि कर सकता हूँ कि निर्देशिका वहाँ है

0
MewTwo 2 फरवरी 2021, 00:50
कृपया स्टैक ओवरफ्लो पर पोस्ट को खराब न करें। यद्यपि आपने प्रश्न पूछा था, अब यह एक विश्वकोश के एक भाग के रूप में गिना जाता है।
 – 
Spectric
3 फरवरी 2021, 01:06

1 उत्तर

सबसे बढ़िया उत्तर

आपकी समस्या को पुन: उत्पन्न करने का एक आसान तरीका यहां दिया गया है:

$ bash "echo Hello"
bash: echo Hello: No such file or directory

ऐसा इसलिए होता है क्योंकि अपेक्षित सिंटैक्स bash yourfile है। आप जिस स्ट्रिंग को पास कर रहे हैं वह उपयोगी फ़ाइल नाम नहीं है, इसलिए यह विफल हो जाता है।

एक स्ट्रिंग तर्क को कमांड के रूप में चलाने के लिए, आप bash -c commandstring का उपयोग कर सकते हैं:

$ bash -c "echo Hello"
Hello

यह बैश को फ़ाइल नाम खोलने के बजाय निष्पादित करने के लिए शेल कमांड के रूप में पैरामीटर की व्याख्या करता है।

1
that other guy 2 फरवरी 2021, 01:18
तो क्या यह ssh के साथ भी काम करता है? अगर मैं अपने docker कमांड को ssh से बदल देता हूं, तो मैं सर्वर में लॉग इन करता हूं।
 – 
MewTwo
2 फरवरी 2021, 09:11
तो -c ने मुझे बैश के साथ कमांड चलाने दिया। लेकिन मुझे वैसा ही आउटपुट नहीं मिलता जैसा मैं चाहता था कि मैं इसे बिना चलाऊं। चर (आरसी फ़ाइल) से किसी भी पैरामीटर का हिसाब नहीं लगाया जा रहा है।
 – 
MewTwo
2 फरवरी 2021, 09:40