当我从命令行运行下面的 shell 脚本时,它将复制的文件输出到屏幕,我可以看到替换已正确进行,但是在它创建的新文件中,它仍然显示原始文件的原始文件内容。 html - 我将方面保存到新文件时做错了什么?
# other relevant vars above #
cp original.html MobileApp/www/index.html
sed -E'' "s#MOBILE_APP_API_URL#\"$mobile_app_api_url\"#g;
s#MOBILE_APP_MEDIA_URL#\"$mobile_app_media_url\"#g;
s#MOBILE_APP_ENVIRONMENT#\"$environment\"#g" MobileApp/www/index.html
// 请注意,如果我在行的开头使用 sed -i ,这将按预期工作,但出于可移植性的原因,我不想使用 -i 参数。
答案1
在这种情况下,我会选择
sed -E -e "s#MOBILE_APP_API_URL#\"$mobile_app_api_url\"#g" \
-e "s#MOBILE_APP_MEDIA_URL#\"$mobile_app_media_url\"#g" \
-e "s#MOBILE_APP_ENVIRONMENT#\"$environment\"#g" \
original.html >MobileApp/www/index.html
该-E
标志不接受参数,并且通过多个-e
部分,我们可以将命令行分成可读的块。
我们可以完全跳过,cp
因为我们处理源文件并使用重定向直接写入目标文件。