Remplacer Echap

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. Contributeur
    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 ?
    1. 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 .
      1. Contributeur
        Avec quel éditeur fais-tu ça ? vi (vim) ?

        Sinon il serait peut être bien de passer par "sed" ou "ed"...
    2. 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"
      1. Contributeur
        Je suppose qu'un :

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