Script shell récupérer ligne de commande [Résolu/Fermé]

Signaler
Messages postés
22
Date d'inscription
samedi 10 mars 2012
Statut
Membre
Dernière intervention
21 novembre 2013
-
Messages postés
924
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
17 janvier 2019
-
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


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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 56940 internautes nous ont dit merci ce mois-ci

Messages postés
22
Date d'inscription
samedi 10 mars 2012
Statut
Membre
Dernière intervention
21 novembre 2013

Merci à toi, ça a résolu mon problème !
Je ne connaissais pas cet outil, qui à l'air assez "puissant".
Messages postés
924
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
17 janvier 2019
285
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.
Messages postés
22
Date d'inscription
samedi 10 mars 2012
Statut
Membre
Dernière intervention
21 novembre 2013

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 ;-)
Messages postés
924
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
17 janvier 2019
285
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.
Messages postés
35326
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
4 août 2020
5 318
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 ;-)))
Messages postés
924
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
17 janvier 2019
285
Oui tu as raison, mais j'ai fait ça un peu à la rache pour la démo.
Merci d'avoir corrigé.
A plus.