3

スクリプト内からシェルスクリプトを生成していますが、ルート権限が必要なので、使用します

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

シバン行を出力しようとするとエラーが発生し、それをエスケープする方法がわかりません-他の変数の場合と同様です。

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'"

ここでどこが間違っていますか?

4

2 に答える 2

5

!'bash_historyで始まるコマンドを探しています。'!'が必要です 引用符で囲まず、円記号でエスケープします。aは2つの引用符よりも短いため、引用符から取り出し#てエスケープすることもできます。\

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'"
于 2012-05-07T16:23:53.993 に答える
0

おそらくあなたの!歴史の中で何かに置き換えようとしています。試してみてください...'#\!/bin/bash...

于 2012-05-07T16:22:41.230 に答える