Why does this code return an error?
#!/bin/bash
ARG=$1
MYVAR="TEST"
FILE="/path/to/file/$ARG"
AAA="/path/test/$MYVAR"
BBB="foo bar $AAA bar foo $AAA"
sed -i -e "s/TEXT/$BBB/g" $FILE
sed: -e expression #1, char 58: unknown option to `s'
您的替换 ( $BBB
) 中有斜线,与您使用的相同分隔符sed
。使用另一个:
sed -i -e "s|TEXT|$BBB|g" $FILE
使用调试模式(#!/bin/bash -x
用作 shebang):
+ ARG=foo
+ MYVAR=TEST
+ FILE=/path/to/file/foo
+ AAA=/path/test/TEST
+ BBB='foo bar /path/test/TEST bar foo /path/test/TEST'
+ sed -i -e 's/TEXT/foo bar /path/test/TEST bar foo /path/test/TEST/g' /path/to/file/foo
sed: -e expression #1, char 18: unknown option to `s'
其他人给出了解释。