Script shell récupérer ligne de commande

Résolu
Hethan666 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
jivef Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

2 réponses

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
Hethan666 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   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
Hethan666 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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   Statut Membre Dernière intervention   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