स्ट्रिंग `-23` को कमांड लाइन में` docker` से बदल दिया जाता है


17

मेरे पास पैरामीटर के साथ एक मावेन कमांड है:

mvn test -Dcommon_password=!23foo

इस आदेश को निष्पादित किया जा रहा है

mvn test -Dcommon_password=dockerfoo

Ie !23के साथ प्रतिस्थापित किया जा रहा है docker। ऐसा क्यों होता है और मैं इससे कैसे बच सकता हूं?

जवाबों:


43

यह इतिहास विस्तार है : !23आपके इतिहास में 23 वें आदेश के साथ प्रतिस्थापित किया गया है।

इससे बचने के लिए, एकल उद्धरणों का उपयोग करें:

mvn test '-Dcommon_password=!23foo'

5
या इसे पूरी तरह से निष्क्रिय कर दें set +H/set +o histexpand
ilkachachu

12
यह एक पासवर्ड है जिसमें संभावित रूप से सभी प्रकार के शेल मेटाचैकर शामिल हो सकते हैं। एम। किट के उत्तर के रूप में उचित रूप से उद्धृत करना और बच निकलना , संभावनाओं में से केवल एक को अक्षम करने से बेहतर है। बेशक, पहली जगह में प्रक्रिया तर्कों में पासवर्ड नहीं होना अभी भी बेहतर होगा । (-:
JdeBP

@JdeBP ने अपने प्रश्न में मैंने एक सादे पाठ में एक पासवर्ड दिखाया जो सिर्फ सादगी के कारण था। एक वास्तविक परियोजना में तर्क जेन्किन्स गुप्त क्रेडेंशियल से मूल्य लेता है। तो यह नकाबपोश और सुरक्षित है।
विटालि प्लागोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.