繁体   English   中英

某些Sed替代无法在Bash脚本中运行

[英]Certain Sed Substitution Not Working In Bash Script

我有一个脚本,可以做相当多的sed替换,并且所有工作都可以禁止这一行。

奇怪的是,当我只在终端上正常运行它时,它就可以正常工作。

我要替换的代码是此块的一部分:

location ~ \.php$ {
  try_files $uri =404;
  fastcgi_pass unix:/var/run/php-fpm.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

特别是这一行: fastcgi_pass unix:/var/run/php-fpm.sock; 我想改变。

这是我用来替代它的代码:

sed -i "s#fastcgi_pass unix:/var/run/php-fpm.sock;#fastcgi_pass unix:/var/run/php7.0-fpm.sock;#" /etc/nginx/sites-available/lemp-stack.app

由于某种原因,它不能替代。

有人有什么想法吗?

谢谢。

如果是这种情况,在passunix之间可能会有一个制表符而不是空格,这应该可以工作:

sed "s#fastcgi_pass[ \t]unix:/var/run/php-fpm.sock;#fastcgi_pass unix:/var/run/php7.0-fpm.sock;#"

暂无
暂无

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

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