Bonjour,
Dans ‘monprogramme’, je souhaite récupérer la ‘ligne de commande’ précédent le pipe, en plus de la sortie standard :
Je ne sais pas si c’est possible.
Si oui, quelle serait la solution ?
Bonjour,
Dans ‘monprogramme’, je souhaite récupérer la ‘ligne de commande’ précédent le pipe, en plus de la sortie standard :
Je ne sais pas si c’est possible.
Si oui, quelle serait la solution ?
Peut être avec la commande tee
Je suis pas chez moi je peux pas faire plus de tests avant demain.
Pas sûr que ça soit faisable, au moment où le deuxième processus commence, le premier peut être terminé et seul le flux de sortie est disponible. Dans ce cas, l’origine du flux n’est pas possible a déterminer. À mon avis, il te faut faire un wrapper genre
execute:
#!/bin/sh
echo $*
$*
et dans ce cas
execute commande
t’exécute la commande après l’avoir affichée. Attention aux problèmes des arguments avec des "…
De mon côté, ça ne donne rien avec ‘tee’.
Par contre, avec ‘history’, il y a peut être un truc à faire !
$ ls | monprogramme.bin
$ history
531 ls | monprogramme.bin
532 history
A suivre …
Pour faire un wrapper, ça ne va pas non plus : je souhaite récupérer la ligne de commande,quelle qu’elle soit.
Salut,
Et du coté des “tubes nommés” Named Pipe (c’est un vieux souvenir de fac).
Bonjour,
Une des solutions possibles:
$ echo -e “\n” ""ls -l “” | tee -a res.txt | xargs /bin/bash -c >> res.txt
$ echo -e “\n” ""find “” | tee -a res.txt | xargs /bin/bash -c >> res.txt
$ cat res.txt
"ls -l"
total 8
drwxr-xr-x 2 user1 user1 4096 2009-04-22 19:48 d1
-rw-r–r-- 1 user1 user1 0 2009-04-20 22:51 f1
-rw-r–r-- 1 user1 user1 0 2009-04-20 22:51 f2
-rw-r–r-- 1 user1 user1 10 2009-04-22 19:48 res.txt
“find”
.
./f1
./res.txt
./f2
./d1
./d1/f1
Salutations.
f() {
cmd=$@
echo "Commande: $cmd" > log
$cmd >> log 2>&1
return $?
}
f commande super pratique