Bash sed未端接's';命令

Bash sed未端接's';命令,bash,sed,sh,Bash,Sed,Sh,我有这个bash代码 REPLACEMENT="s:define('CP_DIRECTORY.*:define('CP_DIRECTORY), ('"${NEWLOCATION}"');:;" sed -i $REPLACEMENT $INITDATA; 它回来了 sed: -e expression #1, char 9: unterminated `s' command 我正在尝试替换initdata.php中的一行,如下所示: define( 'CP_DIRECTORY', 'admi

我有这个bash代码

REPLACEMENT="s:define('CP_DIRECTORY.*:define('CP_DIRECTORY), ('"${NEWLOCATION}"');:;"
sed -i $REPLACEMENT $INITDATA;
它回来了

sed: -e expression #1, char 9: unterminated `s' command
我正在尝试替换initdata.php中的一行,如下所示:

define( 'CP_DIRECTORY', 'admin' );
对此

define( 'CP_DIRECTORY', 'AJgBCecvPBUnPZCLvKukyzfehWrsF5wI' );

在整个
sed
命令周围加上单引号:

sed -i 's:AdminCP = .*:AdminCP = "/home/pi/forums/AJgBCecvPBUnPZCLvKukyzfehWrsF5wI";:' forums/initdata.php

否则,命令将在空间上拆分。另外,星号前需要一个点,否则你只是说“零或更多空格”。

多亏丹尼斯·威廉姆森说我需要引用sed命令&

最后的代码是

    REPLACEMENT="define( 'CP_DIRECTORY' ), ( '"
    REPLACEMENT=$REPLACEMENT$NEWLOCATION;
    REPLACEMENT=$REPLACEMENT"' );:;";
    sed -i "s:define( 'CP_DIRECTORY.*:$REPLACEMENT" $INITDATA;

@戴维迪亚兹:你的问题里没有这些。你为什么不把你真正想做的事情贴出来呢。请编辑您的问题,使其反映您的实际情况。抱歉,已更新。我之前看到过这个,我试着编辑它,但由于极度的数据包丢失,我的互联网一直中断,所以我只是发表了评论。