Point d'exclamation dans une commande shell

Bakuryu11 Messages postés 9 Statut Membre -  
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour,

Voilà je voudrais exécuter la commande suivante permettant de lister les fichiers d'un serveur en passant par SSH :
$mdp='mdp!*'
sshpass -p $mdp ssh root@serveur.local 'cd /var/www; ls'

Or, le script me renvoie l'erreur suivante :
Aucun fichier ou dossier de ce type

Ceci s'explique par le fait que le point d'exclamation dans le mot de passe est exécuté.
Je suis bien sûr au courant des procédés pour contourner ce problème, notamment de mettre des guillemets autour du contenu de la variable ou un backslashe devant le point d'exclamation comme ceci :
sshpass -p 'mdp!*' ssh root@serveur.local 'cd /var/www; ls'
sshpass -p mdp\!* ssh root@serveur.local 'cd /var/www; ls'

Le problème c'est que je passe par une variable et donc les guillemets ou les backslashes ne sont pas pris en compte.

Si quelqu'un a une solution à mon problème...

Merci par avance pour votre aide,

Bakuryu11
A voir également:

1 réponse

zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

T'as essayé avec
mdp='mdp\!*' 
?
1