我制作了一个安装脚本,它基本上是在 RewriteEngine On 行之后通过在 shell 脚本中使用 sed
插入一些 RewriteRule
#!/bin/bash
REWRITE_RULE="RewriteRule \^catalog\/category\/view\/id\/([0-9]+)$ http:\/\/localhost\/app\/#?c=$1 [NE,L,R=301]"
FILE_PATH=".htaccess"
sed -i "s/RewriteEngine on/RewriteEngine on\n\n$REWRITE_RULE/g" $FILE_PATH
除了报错什么都不做
: No such file or directory
我在 shell 中尝试了相同的命令,它没有任何问题地工作并更新了我的 .htaccess 文件
我是 shell 脚本的新手,所以不知道通过 shell 和通过脚本使用相同命令的区别。请指导
最佳答案
脚本本身没问题。您确定上面发布的行完全是您从脚本中提取的行吗?
错误消息表明您提供了一个空名称作为文件名,因此我建议您输入一个
echo "FILE_PATH: $FILE_PATH"
直接在 sed
命令之前检查变量是否设置正确。
关于linux - 在 shell 脚本中使用 sed 替代不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20801978/