Una pipe Unix collega i descrittori di file di due processi. Viene creata una pipe con la funzione POSIX pipe () dichiarata in <unistd.h>. Le shell forniscono la creazione di pipe tra i processi usando "|".
Quando ho appena usato pipe in bash, non ci ho pensato più. Ma quando leggo alcuni esempi di codice C usando system call pipe () insieme a fork (), mi chiedo come capire le pipe, comprese sia le pipe anonime che quelle con nome. Si è spesso sentito che "tutto …
Ho avuto l'idea di confrontare rapidamente alcuni programmi di decompressione. Ad esempio per gz, eseguirò il comando: timeout 10 zcat foo.gz | wc -c Il che misurerebbe la quantità di dati che il decompressore potrebbe estrarre in 10 secondi. L'unico problema è che non funziona: poiché zcat viene ucciso, anche …
Sto cercando qualcosa che sospetto non esista: una pipe di nome buffer (non bloccata) non bloccabile da utilizzare dalla riga di comando. C'è una cosa del genere? Ecco il caso d'uso: supponiamo che io abbia un processo che durerà a lungo in background e spargerà molto output stdout. Non mi …
Dato questo esempio minimo ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; ) viene emesso LINE 1e quindi, dopo un secondo, viene emesso LINE 2, come previsto . Se lo convogliamo a grep LINE ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; …
Ho uno script bash che funziona finché la macchina Linux è accesa. Lo avvio come mostrato di seguito: ( /mnt/apps/start.sh 2>&1 | tee /tmp/nginx/debug_log.log ) & Dopo che si avvia, posso vedere il comando tee nel mio output ps come mostrato di seguito: $ ps | grep tee 418 root …
Conosco due tipi di come i comandi possono essere collegati tra loro: usando un Pipe (inserendo std-output in std-input del comando successivo). usando un T (unisci l'output in molti output). Non so se sia tutto ciò che è possibile, quindi disegno un ipotetico tipo di connessione: Come potrebbe essere possibile …
Mi sono bloccato con uno strano comportamento di readarraycomando. Gli man bashstati: readarray Read lines from the standard input into the indexed array variable array ma questi script non funzionano (l'array è vuoto): unset arr; (echo a; echo b; echo c) | readarray arr; echo ${#arr[@]} unset arr; cat /etc/passwd …
Oggi ho scritto una piccola sceneggiatura che conteneva grep -q ^local0 /etc/syslog.conf Durante la revisione, un collega ha suggerito di ^local0essere citato perché ^significa "pipe" nella shell Bourne. Sorpreso da questa affermazione, ho cercato di rintracciare qualsiasi riferimento che menzionasse questo. Nulla di ciò che ho trovato su Internet ha …
Mi chiedo cosa quando dovremmo usare la pipeline e quando non dovremmo. Ad esempio, per interrompere un determinato processo che gestisce i file pdf, non funzionerà utilizzando la pipeline: ps aux | grep pdf | awk '{print $2}'|kill Invece, possiamo farlo solo con i seguenti modi: kill $(ps aux| grep …
Ormai l' uso inutile del catpremio è molto noto, e c'è anche una menzione di un uso inutile diecho (non pertinente per questa domanda). Mi chiedo se ci dovrebbe essere un "Uso inutile di echoin Bash Award": il piping sembra essere molto più lento di heredocs e herestring secondo alcune …
Ho un archivio tar di una singola immagine del disco. L'immagine all'interno di questo file tar ha una dimensione di circa 4 GB. Inoltro l'output di tar xfin ddper scrivere l'immagine del disco su una scheda SD. Il discdump non si ferma mai fino a quando la scheda non è …
In bash: $ echo hi 2>&1 1>/dev/null | cat $ Mentre in zsh: $ echo hi 2>&1 1>/dev/null | cat hi $ Esiste un modo per reindirizzare solo l'errore standard durante il reindirizzamento dell'output standard?
Ho alcune funzioni definite in questo modo: function f { read and process $1 ... echo $result } Voglio comporli insieme in modo che sembrino invocazioni f | g | h. Quale idioma dovrei usare per convertire la funzione lavorando su argomenti in argomenti di lettura da stdin? È possibile …
Mi chiedevo se usarlo wgetfosse possibile scaricare un RPM e poi instradarlo sudo rpm -iper installarlo, in una sola riga? Mi rendo conto che potrei semplicemente correre: wget -c <URL> sudo rpm -i <PACKAGE-NAME>.rpm per installare il pacchetto ma mi chiedevo se potesse essere possibile farlo in una sola riga …
Ho uno script che genera testo in stdout. Voglio vedere tutto questo output nel mio terminale, e allo stesso tempo voglio filtrare alcune linee e salvarle in un file. Esempio: $ myscript Line A Line B Line C $ myscript | grep -P 'A|C' > out.file $ cat out.file Line …
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.