Échapper les guillemets lors de l'utilisation de SSH
Je suis en train de créer un simple script de déploiement pour mes applis PHP. Je sais qu'il y a plusieurs outils pour ce travail (Capistrano, Phing, etc.) mais il semble que beaucoup de travail pour mon simple routine de déploiement.
- Je utiliser sshpass pour éviter de taper mon mot de passe, encore et encore. Mais après le chargement de mon comprimé de l'installateur, j'ai besoin de faire un ssh sur le serveur et d'exécuter certaines commandes. L'un des qui est sed. Ainsi, les citations sont de briser mon script. C'est quelque chose comme ceci:
sshpass -p toto ssh user@host" cd /www/htdocs/foo/bar echo 'vous de Décompresser et de retirer de l'installateur tar-zxf install.tar.gz sed "s/define ('"ENVIRONNEMENT", "développement");/define('ENVIRONNEMENT', 'production');" index.php > tmp && mv tmp index.php sed "s/define ('"ENVIRONNEMENT", "développement");/define('ENVIRONNEMENT', 'production');/" admin/index.php > tmp && mv tmp admin/index.php "
Comme vous pouvez le voir, j'utilise les guillemets pour commencer mon SSH états, mais j'ai aussi besoin de les utiliser sur les sed.
Toutes les suggestions sont grandement appréciés. Merci!
Vous devez vous connecter pour publier un commentaire.
Échapper à l'intérieur des guillemets est la façon normale. N'est-ce pas le travail?
Peut ici-document sera utilisé à la place?:
<<"DATA"
si vous ne voulez pas l'expansion des variables à l'intérieur du document ici