shell : ne pas interpreter le $ comme une variable

shell : ne pas interpreter le $ comme une variable - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 06-10-2010 à 11:43:06    

bonjour,
 
J'ai un script à faire qui manipule des logins et password pour se connecter automatiquement à un équipement. Le problème est que mon mot de passe contient un $ , comment faire pour qu'il ne soit pas interprété comme une variable, mais comme un caractère quelconque ?
Je précise que je ne peut pas modifier mon mot de passe.
 
exemple :
 

Code :
  1. #!/usr/bin/expect
  2. ### Script de connexion automatique sur les routeurs ###
  3. ### Affectation du CS comme parametre ###
  4. set routeur [lindex $argv 0]
  5. ### Connexion sur le routeur ###
  6. spawn telnet $routeur
  7. expect {
  8.    "Username:" {
  9.         send "toto\r"
  10.         expect "Password:"
  11.         send "18w$xyz\r"
  12.     }
  13. }
  14. # expect "#"
  15. # send "sh diag 1\r"
  16. # expect "#"
  17. interact
  18. # exit


 
merci

Reply

Marsh Posté le 06-10-2010 à 11:43:06   

Reply

Marsh Posté le 06-10-2010 à 12:05:22    

Hello,
 
Je crois qu'il suffit de l'échapper, non ?
 
$ devenant \$

Reply

Marsh Posté le 06-10-2010 à 12:07:49    

Tsomi a écrit :

Hello,
 
Je crois qu'il suffit de l'échapper, non ?
 
$ devenant \$


 
exacte merci

Reply

Marsh Posté le 06-10-2010 à 12:19:37    

Coller les mots de passe en clair dans les scripts c'est le mal [:neriki]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-10-2010 à 13:12:18    

o'gure a écrit :

Coller les mots de passe en clair dans les scripts c'est le mal [:neriki]


 
on s'en fou c'est dans mon /home

Reply

Marsh Posté le 06-10-2010 à 13:18:58    

cyberP@cal a écrit :

on s'en fou c'est dans mon /home


Je ne vois pas en quoi c'est un argument.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-10-2010 à 23:02:12    

échapper est une solution, sinon tu remplaces :

Code :
  1. send "18w$xyz\r"


par :

Code :
  1. send '18w$xyz'"\r"


 
bon c'est un peu relou à cause du retour chariot, mais c'est pour montrer l'intérêt des simples quotes par rapport aux doubles
Comme en PHP : double quote, l'intérieur est interprété, simple quote non
 
 
 
edit : et sinon, o'gure + 10000


Message édité par fighting_falcon le 06-10-2010 à 23:02:35
Reply

Marsh Posté le 07-10-2010 à 10:06:19    

o'gure a écrit :

Coller les mots de passe en clair dans les scripts c'est le mal [:neriki]


 
tellement vrai :o
 
et puis expect... en 2010 [:sadnoir] [:sadnoir] [:sadnoir] [:sadnoir]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 07-10-2010 à 11:41:16    

black_lord a écrit :


 
tellement vrai :o
 
et puis expect... en 2010 [:sadnoir] [:sadnoir] [:sadnoir] [:sadnoir]


comment on fait en 2010 ? :)


---------------
oui oui
Reply

Marsh Posté le 07-10-2010 à 13:42:10    

art_dupond a écrit :


comment on fait en 2010 ? :)


 
on utilise des vraies libs qui encapsulent tout ça ?
 
Quelques liens au hasard


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 07-10-2010 à 13:42:10   

Reply

Marsh Posté le 07-10-2010 à 14:21:14    

ben je ne sais pas justement, c'est pour ça que je pose la question :)
 
 
merci :jap:


---------------
oui oui
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed