让
CONFIG_FILE=${WWW_DIR}/${WORDPRESS_TEST_DIR}/wp-config.php
这不起作用:
sed "${SED_ARG}" ${CONFIG_FILE} >| ${CONFIG_FILE}
(我得到的只是一个空文件)。当我用实际路径字符串替换变量时,或者用“转义路径时,它都不起作用。
这确实有效:
sed "${SED_ARG}" ${CONFIG_FILE} >| wp-config.php
mv wp-config.php ${CONFIG_FILE}
所以我假设 sed
通话效果很好。
奇怪的是,这确实也有效:
echo TEST >| ${CONFIG_FILE}
所以sed
毕竟,部分可能是问题所在。我一无所知。有什么想法吗?
最佳答案
在执行 sed
命令之前,重定向会打开文件进行写入(而不是追加),这使其成为一个新的空文件。
您可以使用 sed 的 -i
标志来进行就地替换:
sed -I "${SED_ARG}" "${CONFIG_FILE}"
我还在 ${CONFIG_FILE}
周围加了引号,以避免在包含任何特殊字符时出现意外行为。
关于linux - 无法将标准输出重定向到完整路径指定的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31222345/