我有变量 - 与价值“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"
双方将保留原来的值,而不试图处理它作为一个变量。