Point d'exclamation dans une commande shell

Bakuryu11 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   -
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 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Salut,

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