2012-05-07 98 views
2

當我從腳本生成一個shell腳本,所以我用你如何產生一個shell腳本

sudo bash -c "echo 'Hello There!' > '/var/www/cgi-bin/php-cgi-5.3.8'" 

我得到一個錯誤,如果我試圖輸出的家當,它需要root權限逃脫家當線行,我不知道如何逃避它 - 就像我對其他變量。

sudo bash -c "echo '#!/bin/bash 

version=\"5.3.8\" 
export PHPRC=/etc/php/phpfarm/inst/php-\${version}/lib/php.ini 
export PHP_FCGI_CHILDREN=3 
export PHP_FCGI_MAX_REQUESTS=5000 
exec /etc/php/phpfarm/inst/php-\${version}/bin/php-cgi' > '/var/www/cgi-bin/php-cgi-5.3.8'" 

我在哪裏錯了?

+1

什麼是錯誤? – gpojd

回答

5

!正在尋找在您的bash_history中以'開頭的命令。你應該有'!'不加引號並用反斜槓轉義。你也可以把#用於引號外,也可以跳過它,因爲\比兩個引號短。

sudo bash -c "echo \#\!'/bin/bash 

version=\"5.3.8\" 
export PHPRC=/etc/php/phpfarm/inst/php-\${version}/lib/php.ini 
export PHP_FCGI_CHILDREN=3 
export PHP_FCGI_MAX_REQUESTS=5000 
exec /etc/php/phpfarm/inst/php-\${version}/bin/php-cgi' > '/var/www/cgi-bin/php-cgi-5.3.8'" 
+0

我覺得第一個單引號應該在「echo」之後。 – gpojd

+1

@gpojd不,它是在正確的地方。這就是爲什麼我逃脫了'#'。 – Paulpro

+0

@ PaulP.R.O。 - 好的提示,非常感謝。 – ezraspectre

0

!可能試圖取代您的歷史中的某些東西。嘗試...'#\!/bin/bash...

+2

或先做這個'set + o histexpand' –

相關問題