簡體   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