Script shell récupérer ligne de commande

Résolu/Fermé
Hethan666 Messages postés 22 Date d'inscription samedi 10 mars 2012 Statut Membre Dernière intervention 21 novembre 2013 - Modifié par Hethan666 le 10/03/2012 à 19:10
jivef Messages postés 927 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 12 novembre 2020 - 16 mars 2012 à 20:42
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

Utilisateur anonyme
10 mars 2012 à 20:08
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
Hethan666 Messages postés 22 Date d'inscription samedi 10 mars 2012 Statut Membre Dernière intervention 21 novembre 2013
11 mars 2012 à 18:33
Merci à toi, ça a résolu mon problème !
Je ne connaissais pas cet outil, qui à l'air assez "puissant".
0
jivef Messages postés 927 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 12 novembre 2020 300
10 mars 2012 à 19:05
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
Hethan666 Messages postés 22 Date d'inscription samedi 10 mars 2012 Statut Membre Dernière intervention 21 novembre 2013
Modifié par Hethan666 le 10/03/2012 à 19:11
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
jivef Messages postés 927 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 12 novembre 2020 300
14 mars 2012 à 17:54
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
zipe31 Messages postés 36317 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 568
14 mars 2012 à 18:16
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
jivef Messages postés 927 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 12 novembre 2020 300
16 mars 2012 à 20:42
Oui tu as raison, mais j'ai fait ça un peu à la rache pour la démo.
Merci d'avoir corrigé.
A plus.
0