2017-04-25 150 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" 

双方将保留原来的值,而不试图处理它作为一个变量。