我有变量 - 有价值" RzQh $ TaH6Vq5bD"但是当我这样做的时候 export TASK_UID = $ 1 其中$ 1是shell脚本的参数,即RzQh $ TaH6Vq5bD 在$ $之后它忽略了任何东西它只给了我" RzQh"
请建议,以便它会考虑价值。
答案 0 :(得分:0)
尝试使用转义序列
Replace RzQh$TaH6Vq5bD with RzQh\$TaH6Vq5bD
它会起作用。
答案 1 :(得分:0)
您可以使用单引号:
a='RzQh$TaH6Vq5bD'
或者只使用$
转义\
,如下所示:
a="RzQh\$TaH6Vq5bD"
两者都将保留原始值而不尝试将其作为变量处理。
答案 2 :(得分: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