繁体   English   中英

重击查找并替换字符串

[英]Bash find and replace string

我正在编写代码,该代码将自动更改VestaCP面板的IP。 我需要用新变量$ newIP替换变量$ oldIP的代码,所以我写了这段代码。

sudo perl -pi -e 's/${oldIP}/${newIP}/g' /etc/nginx/conf.d/${oldIP}.conf

但是代码不会替换oldIP.conf(123.123.123.123.conf)中的oldIP。

但是,如果我尝试

sudo perl -pi -e 's/123.123.123.123/123.456.123.456/g' /etc/nginx/conf.d/123.123.123.123.conf

它可以完美地工作,尽管我无法使用此代码,因为服务器曾经拥有不同的IP,并且当它更改时我无法预测下一个IP。

我在这里做错了什么? 有什么办法吗? 提前致谢!

PS:如果有帮助,我将使用Ubuntu 16.04。

您的变量不会在单引号之间展开。 请使用双引号代替:

sudo perl -pi -e "s/${oldIP}/${newIP}/g" /etc/nginx/conf.d/${oldIP}.conf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM