PHP アプリ用の簡単なデプロイ スクリプトを作成しようとしています。この作業にはいくつかのツール (Capistrano、Phing など) があることは知っていますが、単純な展開ルーチンの場合、それらは大変な作業のように思えます。
パスワードを何度も入力するのを避けるために、 sshpassを使用しています。しかし、圧縮されたインストーラーをアップロードした後、サーバーに ssh していくつかのコマンドを実行する必要があります。そのうちの 1 つが sed です。だから、引用符は私のスクリプトを壊しています。それは次のようなものです:
sshpass -p foo ssh ユーザー@ホスト " cd /www/htdocs/foo/bar echo '解凍してインストーラーを削除' tar -zxf install.tar.gz sed "s/define('環境', '開発');/define('環境', '生産');" index.php > tmp && mv tmp index.php sed "s/define('環境', '開発');/define('環境', '生産');/" admin/index.php > tmp && mv tmp admin/index.php "
ご覧のとおり、二重引用符を使用して SSH ステートメントを開始していますが、sed でも二重引用符を使用する必要があります。
どんな提案でも大歓迎です。ありがとう!