在unix中使用$ {string // variable1 / variable2}问题进行变量替换

时间:2014-04-15 17:14:18

标签: string shell unix ksh

您好我正在尝试用另一个字符串替换字符串。

这是我的样本

$ 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语句,其中我执行程序(参数,...);

这种情况下的问题是什么?

2 个答案:

答案 0 :(得分:0)

相反怎么样?

PARAM=$SITE${PARAM#\$SITE}

$PARAM的开头删除文字字符串$ SITE,然后预先设定$SITE的实际值。

> SITE=12
> PARAM='$SITE,90,1000'
> echo $PARAM 
$SITE,90,1000
> echo "$SITE${PARAM#\$SITE}"
12,90,1000

答案 1 :(得分:0)

你有什么版本的ksh?

$ SITE=42
$ PARAM='$SITE,90,1000'
$ echo ${PARAM//\$SITE/$SITE}
42,90,1000
$ echo ${PARAM//'$SITE'/$SITE}
42,90,1000
$ ksh --version
  version         sh (AT&T Research) 93u 2011-02-08