我有一个值为“RzQh$TaH6Vq5bD”的变量
导出任务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

08-20 00:32