Un canal Unix relie les descripteurs de fichiers de deux processus. Un tube est créé avec la fonction POSIX pipe () déclarée dans <unistd.h>. Les shells permettent la création de canaux entre les processus en utilisant "|".
Quand je viens d'utiliser de la pipe en bash, je n'y ai pas pensé davantage. Mais quand j'ai lu un exemple de code C utilisant pipe () d'appel système avec fork (), je me demande comment comprendre les pipes, y compris les pipes anonymes et les pipes nommées. On entend …
J'ai eu l'idée de comparer rapidement certains programmes de décompression. Par exemple pour gz, je lancerais la commande: timeout 10 zcat foo.gz | wc -c Ce qui mesurerait la quantité de données que le décompresseur pourrait extraire en 10 secondes. Le seul problème est que cela ne fonctionne pas: comme …
Je cherche quelque chose que je soupçonne n'existe pas: Un tube nommé non bloquant (fifo) à utiliser depuis la ligne de commande. Une telle chose existe t elle? Voici le cas d'utilisation: Supposons que j'ai un processus qui va s'exécuter longtemps en arrière-plan et qui génère beaucoup de sortie stdout. …
Étant donné cet exemple minimal ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; ) il sort LINE 1et puis, après une seconde, sort LINE 2, comme prévu . Si nous le canalisons grep LINE ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; …
J'ai un script bash qui s'exécute tant que la machine Linux est sous tension. Je le démarre comme indiqué ci-dessous: ( /mnt/apps/start.sh 2>&1 | tee /tmp/nginx/debug_log.log ) & Après son lancement, je peux voir la commande tee dans ma sortie ps comme indiqué ci-dessous: $ ps | grep tee 418 …
Je connais de deux types comment les commandes peuvent être connectées les unes aux autres: en utilisant un Pipe (en mettant std-output dans std-input de la commande suivante). en utilisant un Tee (épissez la sortie en plusieurs sorties). Je ne sais pas si c'est tout ce qui est possible, je …
Je suis resté avec un étrange comportement de readarraycommandement. Les man bashétats: readarray Read lines from the standard input into the indexed array variable array mais ces scripts ne fonctionnent pas (le tableau est vide): unset arr; (echo a; echo b; echo c) | readarray arr; echo ${#arr[@]} unset arr; …
J'ai écrit aujourd'hui un petit script qui contenait grep -q ^local0 /etc/syslog.conf Au cours de l'examen, un collègue a suggéré de ^local0le citer parce qu'il ^signifie «pipe» dans le shell Bourne. Surpris par cette affirmation, j'ai essayé de retrouver toute référence qui en faisait mention. Rien de ce que j'ai …
Je me demande quand nous devrions utiliser le pipeline et quand nous ne devrions pas. Dites par exemple, pour tuer certains processus qui gèrent des fichiers pdf, les éléments suivants ne fonctionneront pas en utilisant le pipeline: ps aux | grep pdf | awk '{print $2}'|kill Au lieu de cela, …
À présent, l' utilisation inutile du catprix est très bien connue, et il est également fait mention d'une utilisation inutile deecho (non pertinente pour cette question). Je me demande s'il devrait y avoir une "utilisation inutile de echoin Bash Award": la tuyauterie semble être beaucoup plus lente que les heredocs …
J'ai une archive tar d'une seule image disque. L'image à l'intérieur de ce fichier tar fait environ 4 Go. Je dirige la sortie de tar xfdans ddpour écrire l'image disque sur une carte SD. Le vidage de disque ne s'arrête jamais tant que la carte n'est pas pleine. Voici ma …
En bash: $ echo hi 2>&1 1>/dev/null | cat $ En zsh: $ echo hi 2>&1 1>/dev/null | cat hi $ Existe-t-il un moyen de ne diriger que l'erreur standard lors de la redirection de la sortie standard?
J'ai peu de fonctions définies de cette façon: function f { read and process $1 ... echo $result } Je veux les composer ensemble pour que l'invocation ressemble f | g | h. Quel idiome dois-je utiliser pour convertir une fonction travaillant sur des arguments en un seul argument de …
Je me demandais s'il wgetétait possible de télécharger un RPM puis de le diriger sudo rpm -ipour l'installer, sur une seule ligne? Je réalise que je pourrais simplement courir: wget -c <URL> sudo rpm -i <PACKAGE-NAME>.rpm pour installer le package, mais je me demandais s'il serait possible de le faire …
J'ai un script qui produit du texte stdout. Je veux voir toute cette sortie dans mon terminal, et en même temps, je veux filtrer certaines lignes et les enregistrer dans un fichier. Exemple: $ myscript Line A Line B Line C $ myscript | grep -P 'A|C' > out.file $ …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.