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
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
-
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 41989 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
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
299
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
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
299
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
36324
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 480
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
927
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
12 novembre 2020
299
Oui tu as raison, mais j'ai fait ça un peu à la rache pour la démo.
Merci d'avoir corrigé.
A plus.