2016-01-29 52 views
1

我有一個腳本可以完成sed替換,並且它的所有功能都在禁止這一行。某些Sed替換在Bash腳本中不起作用

奇怪的是,它正常工作,當我只是在終端上運行它。

我想替換的代碼是該塊的一部分:

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 

出於某種原因,它只是不代替。

有沒有人有任何想法?

謝謝。

+0

我建議你來運行'bash的-x yourfile'劇本看什麼是實際執行。在我的機器上,一切都按預期工作。 –

回答

0

有可能代替passunix之間的空間的選項卡,如果是的話,這應該工作:

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