Script shell récupérer ligne de commande

Résolu
Hethan666 Messages postés 26 Statut Membre -  
jivef Messages postés 1024 Statut Membre -
Bonjour,
je tente de récupérer une ligne de commande déjà écrite (dans le genre historique) que je souhaite stocker dans un fichier.
Pour ne pas me perdre, j'écris en début de ligne la date complète actuelle.
J'ai trouvé sur internet une commande ayant un effet semblable à celui que je recherche, qui se trouve être "!"
Mon script ne fonctionne pas (sinon je ne passerais pas vous demander de l'aide !), j'aimerais savoir ce qui ne va pas. Est-ce parce que je n'utilise pas la bonne fonction ? Ou bien la syntaxe est-elle incorrecte pour cette même fonction ?

Voici mon script :
cd ~/log/ 
echo "'date +%Y-%m-%d-%T' - '!-1'" >> historique.list 


Merci d'avance pour vos réponses.

2 réponses

  1. Utilisateur anonyme
     
    salut,

    l'historique du script n'est pas celui de la console.
    au moment du rappel de la dernière commande ('!-1'), le script rappellera 'cd'
    et encore, il faudrait ajouter 'set -H -o history'

    'fc' peut peut-être t'aider?
    2
    1. Hethan666 Messages postés 26 Statut Membre
       
      Merci à toi, ça a résolu mon problème !
      Je ne connaissais pas cet outil, qui à l'air assez "puissant".
      0
  2. jivef Messages postés 1024 Statut Membre 306
     
    Salut,
    Tu n'utilises pas les bons guillemets.
    En fait, pour encapsuler une commande entre guillemets pour prendre en compte son résultat, il ne faut pas utiliser le guillement du 4, mais celui du 7 (sur un clavier AZERTY).
    A plus.
    Jonas.
    0
    1. Hethan666 Messages postés 26 Statut Membre
       
      c'est bien ceux que j'utilise. Je pense que le copier-coller ne l'affiche pas tant que ça, j'ai vérifié sur mon script directement.

      j'ai modifié mon post pour éviter les dégâts d'un copier-coller ;-)
      0
    2. jivef Messages postés 1024 Statut Membre 306
       
      Salut,
      Il y a une autre solution.
      Je te donne un exemple de deux commandes qui ont la même valeur :
      En premier lieu une commande affiche un texte avec une IP
      #echo "Adresse IP = 202.3.225.115" | grep -Eo "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"

      Tu veux récupérer l'IP dans une variable, deux solutions : le guillet du 7 ou bien $()

      varip='echo "Adresse IP = 202.3.225.115" | grep -Eo "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"'
      Ou bien deuxième solution :
      varip=$(echo "Adresse IP = 202.3.225.115" | grep -Eo "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}")


      Voila.
      Donc essaie de remplacer '' par $()


      Bon courage à toi.
      Jonas.
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

      C'est un bug connu et maintes fois signalé que celui de la mauvaise interprétation par le code interne de CCM concernant la quote inversée (AltGr+7) ;-((

      Sinon Jonas, pour ton grep :

      grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'

      Sera moins indigeste ;-)))
      0
    4. jivef Messages postés 1024 Statut Membre 306
       
      Oui tu as raison, mais j'ai fait ça un peu à la rache pour la démo.
      Merci d'avoir corrigé.
      A plus.
      0