GNU/Linux >> Linux Esercitazione >  >> Linux

Uscita tubazioni da tagliare

La prima riga:

echo $(ps | grep $PPID) | cut -d" " -f4

dice:

  • Esegui ps | grep $PPID in una sotto-shell
  • Restituisce l'output, che sarà qualcosa del genere:

    3559 pts/1 00:00:00 bash
    

    e quindi usa quell'output come primo parametro di echo - che, in pratica, significa semplicemente echo l'output

  • Quindi esegui cut -d" " -f4 su quello - che ti dà il nome del comando in questo caso

Il secondo comando:

echo ps | grep $PPID | cut -d" " -f4

dice:

  • Echo stringa ps
  • Grep quella stringa per $PPID - questo non restituirà mai nulla, come $PPID contiene un numero, quindi non sarà mai ps . Pertanto, grep non restituisce nulla
  • Esegui cut -d" " -f4 con l'input del comando precedente - che non è niente, quindi non ottieni niente

Il motivo è che

echo ps

stampa semplicemente la stringa ps; non esegue il programma ps . La versione corretta del tuo comando sarebbe:

ps | grep $PPID | cut -d" " -f4

Modificato per aggiungere: paxdiablo sottolinea che ps | grep $PPID include molti spazi bianchi che verranno compressi da echo $(ps | grep $PPID) (poiché il risultato di $(...) , quando non è tra virgolette, è diviso da spazi bianchi in argomenti separati, e poi echo emette tutti i suoi argomenti separati da spazi). Per risolvere questo problema, puoi utilizzare tr per "comprimere" spazi ripetuti:

ps | grep $PPID | tr -s ' ' | cut -d' ' -f5

oppure puoi semplicemente attenerti a ciò che dovevi iniziare. :-)


Linux
  1. Come ordinare l'output per dimensione?

  2. Linux – L'output di Ps Lstart è cambiato?

  3. Le tubazioni per l'uscita del circuito impediscono la modifica delle variabili locali?

  4. Ordinare l'output per colonna?

  5. tagliare Esempi di comandi in Linux

Bash:Scrivi su file

Taglia comando in Linux

Ccat:colora l'output del comando Cat

Spiegazione del reindirizzamento di input e output su Linux

Converti l'output ls in csv

ps significato uscita aux