2017-04-25 172 views
0

我有變量 - 與價值「RzQh $ TaH6Vq5bD」但是當我做 出口TASK_UID = $ 1 其中$ 1是參數shell腳本即RzQh $ TaH6Vq5bD 它忽略了什麼之後$只有它給我「RzQh」

請建議,以便它會考慮它的價值。

回答

0

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 
將採取行動的腳本
0

嘗試使用轉義序列

Replace RzQh$TaH6Vq5bD with RzQh\$TaH6Vq5bD 

它將作品。

0

您可以使用單引號:

a='RzQh$TaH6Vq5bD' 

或只是逃避$\像這樣:

a="RzQh\$TaH6Vq5bD" 

雙方將保留原來的值,而不試圖處理它作爲一個變量。