我有變量 - 與價值「RzQh $ TaH6Vq5bD」但是當我做 出口TASK_UID = $ 1 其中$ 1是參數shell腳本即RzQh $ TaH6Vq5bD 它忽略了什麼之後$只有它給我「RzQh」
請建議,以便它會考慮它的價值。
我有變量 - 與價值「RzQh $ TaH6Vq5bD」但是當我做 出口TASK_UID = $ 1 其中$ 1是參數shell腳本即RzQh $ TaH6Vq5bD 它忽略了什麼之後$只有它給我「RzQh」
請建議,以便它會考慮它的價值。
TASK_UID=$1
很可能不是問題。問題在於如何調用腳本。
在調用腳本時,如果沒有正確的引用(或者轉義$
),參數將會被擴展,這意味着,'$ TaH6Vq5bD'被視爲一個變量,如果沒有定義,則不會導致任何結果。永遠不會知道這一點。
tst.ksh
#!/bin/ksh
TASK_UID=$1
echo "$TASK_UID"
如下
prompt $ tst.ksh RzQh$TaH6Vq5bD
RzQh
prompt $ tst.ksh "RzQh$TaH6Vq5bD"
RzQh
prompt $ tst.ksh 'RzQh$TaH6Vq5bD'
RzQh$TaH6Vq5bD
prompt $ tst.ksh RzQh\$TaH6Vq5bD
RzQh$TaH6Vq5bD
prompt $ argument='RzQh$TaH6Vq5bD'
prompt $ tst.ksh $argument
RzQh$TaH6Vq5bD
將採取行動的腳本
嘗試使用轉義序列
Replace RzQh$TaH6Vq5bD with RzQh\$TaH6Vq5bD
它將作品。
您可以使用單引號:
a='RzQh$TaH6Vq5bD'
或只是逃避$
與\
像這樣:
a="RzQh\$TaH6Vq5bD"
雙方將保留原來的值,而不試圖處理它作爲一個變量。