หากฉันรันคำสั่งเหล่านี้จากสคริปต์:
#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
ส่วนนั้นเพื่อไม่ให้ถูกแทนที่โดยตรงซึ่งเป็นสิ่งที่ฉันทำและจะใช้ได้ผลก็ต่อเมื่อมีการกำหนดตัวแปรไว้ก่อน
ฉันจะทำให้ sed รับรู้ a $var
เป็นตัวแปรสภาพแวดล้อมตามที่กำหนดไว้ในเชลล์ได้อย่างไร