अगर मैं इन कमांड को स्क्रिप्ट से चलाता हूं:
#my.sh
PWD=bla
sed 's/xxx/'$PWD'/'
...
$ ./my.sh
xxx
bla
यह ठीक है।
लेकिन, अगर मैं चला:
#my.sh
sed 's/xxx/'$PWD'/'
...
$ ./my.sh
$ sed: -e expression #1, char 8: Unknown option to `s'
मैंने उन ट्यूटोरियल्स में पढ़ा है कि शेल से पर्यावरण वेरिएबल्स को बदलने के लिए आपको रुकने की जरूरत है, और $varname
पार्ट को 'आउट' करें ताकि इसे सीधे सब्स्टीट्यूट नहीं किया जा सके, जो कि मैंने किया है, और जो कि तभी काम करता है जब वेरिएबल को तुरंत परिभाषित किया जाए।
$var
शेल के रूप में परिभाषित किए गए परिवेश चर के रूप में मुझे पहचानने के लिए कैसे sed मिल सकता है ?
set -x
शेल का उपयोग शेल को पाने से पहले प्रत्येक कमांड को इको करने के लिए किया जाता है। इससे काफी भ्रम की स्थिति साफ हो सकती है। (इसके अलावा, मैं अक्सर set -u
डी- set -e