如何在bash中的用户输入变量中转义正斜杠?
发布时间:2020-12-15 21:46:32 所属栏目:安全 来源:网络整理
导读:我正在编写一个脚本,以便更有效地设置Statamic站点.我遇到的问题是我用来替换文件中的字符串的变量具有未转义的正斜杠并且是用户输入.我怎样才能确保_site_url:http://statamic.com成为_site_url:http://example.com? 只要没有正斜杠,下面的代码就会起
我正在编写一个脚本,以便更有效地设置Statamic站点.我遇到的问题是我用来替换文件中的字符串的变量具有未转义的正斜杠并且是用户输入.我怎样才能确保_site_url:http://statamic.com成为_site_url:http://example.com?
只要没有正斜杠,下面的代码就会起作用. echo "What's your site URL? Don't forget the protocol (ex. http://)!" read -e SITE_URL echo "%s/_site_url: http://statamic.com/_site_url: $SITE_URL/g w q " | ex _config/settings.yaml 解决方法
问题是你的ex命令中的分隔符.我们可以放任何我们想要的东西,我在这里使用@:
试着这样做: sed -i "s@_site_url: http://statamic.com/_site_url: $SITE_URL@g" _config/settings.yaml 或者使用你的前命令: echo "What's your site URL? Don't forget the protocol (ex. http://)!" read -e SITE_URL echo "%s@_site_url: http://statamic.com@_site_url: $SITE_URL@g w q " | ex _config/settings.yaml (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |