PHPアプリケーション用の簡単なデプロイメントスクリプトを作成しようとしています。私はこの仕事のためのいくつかのツール(Capistrano、Phingなど)があることを知っていますが、彼らは私の単純な配備ルーチンのための多くの仕事のように思えます。SSHを使用しているときに引用符をエスケープする
私はsshpassを使用して、パスワードの繰り返し入力を避けます。しかし、圧縮されたインストーラをアップロードした後、私はサーバにsshしていくつかのコマンドを実行する必要があります。そのうちの1つはsedです。だから、引用符が私のスクリプトを壊している。
sshpass -p foo ssh [email protected] " cd /www/htdocs/foo/bar echo 'Untar and remove installer' tar -zxf install.tar.gz sed "s/define('ENVIRONMENT', 'development');/define('ENVIRONMENT', 'production');" index.php > tmp && mv tmp index.php sed "s/define('ENVIRONMENT', 'development');/define('ENVIRONMENT', 'production');/" admin/index.php > tmp && mv tmp admin/index.php "
あなたが見ることができるように、私は私のSSH文を開始するために二重引用符を使用しますが、私はまた、SED上でそれらを使用する必要があります。それはこのようなものです。
ご意見をいただければ幸いです。ありがとう!
はい!これは完璧に機能します!ありがとう! – fedeisas