Remplacer Echap

liouae12 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je travail sur un script linux , et je veux modifier dans un fichier .xml une fois je termine , je vais sauvegarder et quitter le fichier , alors comment remplacer Echap dans le script sachant que j ai deja trouver la solution pour sauvegarder et quitter ( :wq )

Merci

3 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Je ne comprends pas bien ce que tu veux ;-\

    Peux-tu préciser un peu mieux ce que tu fais et voudrais faire et avec quels outils ?
    0
  2. liouae12 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci pour votre reponse ,

    Ok , j'ai un fichier .xml chaque fois je modifie quelque donnée , et une fois je termine la modification , je tape Echap sur le clavier pour quitter le mode insert et je tape shift + zz pour enregistrer et quitter le fichier , Alors la je veux pas faire ça manuellement , je veux remplacer ça par un script , et le probléme c comment remplacer Echap qui est dans le clavier par une commande script , deja j ai trouver pour ( shift + zz ) c'est ( :wq )
    Mais Echap , j'arrive pas , alors comment , et merci d 'avance .
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Avec quel éditeur fais-tu ça ? vi (vim) ?

      Sinon il serait peut être bien de passer par "sed" ou "ed"...
      0
  3. liouae12 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
     
    vi comme editeur , alors dans la derniere ligne je veux echaper et enregistrer la modif ( voir l'exemple )

    Voici l'exemple :

    #!/usr/bin/expect -f
    set force_conservative 1;
    set serv [lindex $argv 0]
    set envr [lindex $argv 1]
    set timeout 3
    spawn ssh liouae@${serv}
    expect "password:r/"
    send -- "liouae"
    send -- "\r"
    send -- "\r"
    expect "\[liouae@enee ~]"
    send -- "su - ${envr} :\r"
    send -- "\r"
    expect "Mot de passe :\r"
    send -- "123456"
    send -- "\r"
    send -- "\r"
    send -- "sh"
    send -- "\r"
    send -- "\r"
    send -- "cd ../../TCS/conf/TCServer/"
    send -- "\r"
    send -- "\r"
    send -- "env>environment.vars"
    send -- "\r"
    send -- "\r"
    send -- "vi tcserver.xml"
    send -- "\r"
    send -- "\r"
    expect "Press ENTER"
    send -- "\r"
    send -- "\r"
    send -- "sed -i.bak 's/production/${envr}/g' tcserver.xml"
    send -- "\r"
    send -- "sed -i.bak 's/86/${port}/g' tcserver.xml"
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Je suppose qu'un :

      send -- "\e" 
      devrait le faire ;-))
      0