【发布时间】:2014-05-30 04:39:45
【问题描述】:
您好,我正在尝试用另一个字符串替换一个字符串。
这是我的示例
$SITE 已被声明
PARAM="$SITE,90,1000"
PARAM=${PARAM//'$SITE'/$SITE}
但我收到此错误
PARAMS="${PARAMS//"\$SITE"/$SITE}": 0403-011 The specified substitution is not valid for this command.
是什么导致这个“\”出现在 unix 执行中?
当我直接从 Shell 脚本执行时,它可以工作。
但是这些参数是从我构建 PARAM 变量的文本文件中获取的。 最后我做了一个 sqlplus 语句,我执行过程(参数,...);
在这种情况下有什么问题?
【问题讨论】:
-
$SITE的值是多少? -
set -vx查看 shell 如何执行每一行。您在 PARAM=... 中使用的'$SITE'相当于错误消息中显示的"\$SITE"。由于 SITE 已声明,请尝试PARAM=${PARAM//"$SITE"/$SITE}。祝你好运。 -
好的,
PARAM的预期输出是什么? -
PARAMS 是
$SITE,90,1000但由于 sqlplus 将其读取为 $SITE,我想使用 replace 方法将文字站点替换为已传递的值 $SITE。所以我希望参数最终像12,90,1000