用具有变量的sed替换文本

用具有变量的sed替换文本,sed,Sed,我有一个脚本文件,它是 ************************************************** case $arg in -start) **./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config $@** if test $? -ne 0 ; then exit 1 fi ;; -version) ./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config -i -v $@ if test $? -

我有一个脚本文件,它是

**************************************************
case $arg in

-start)

**./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config $@**

if test $? -ne 0 ; then

exit 1

fi

;;

-version)

./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config -i -v $@

if test $? -ne 0 ; then

exit 1

fi

;;

-configtest)

./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config -i -c $@

if test $? -ne 0 ; then

echo 'failure: configuration test failed'

exit 1

fi

echo 'success: configuration was parsed successfully'

;;

-shell)

/bin/sh

;;

*)

echo "Usage: start [-start|-shell|-version|-configtest]"

exit 1

;;

**********************************************
我正在寻找替代者

"./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config $@" 

我厌倦了使用sed,但它不允许接受VARABLE作为连续数据。 你能帮帮我吗?我把所有的东西都绑起来了,真是疯了

提前感谢。

您想要这一行:

./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config $@
看起来像这样:

newtask -p $Project_Name ./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config $@
对吗?然后:

只需使用单引号(
)将命令和管道(
|
)包装为分隔符:

sed -i.bak 's|./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config $@|newtask -p $Project_Name ./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config $@|' scriptfile

sed-e's|./$PRODUCT|BIN-d$PRODUCT|u SUBDIR/config$@newtask-p$Project|Name./$PRODUCT|BIN-d$Project|u/config$@scriptfile

我试过了你说的bash-3.00$sed-i.bak's./$PRODUCT BIN-d$PRODUCT u SUBDIR/config$$newtask-p$Project| Name./$Project|u-d$Project|Name./$PRODUCT u-d$PRODUCT BIN-d$Project|SUBDIR/config$$start1:$非法如果在您的情况下不起作用,您可以忽略
-i.bak
部分。
sed -i.bak 's|./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config $@|newtask -p $Project_Name ./$PRODUCT_BIN -d $PRODUCT_SUBDIR/config $@|' scriptfile