GNU/Linux >> Tutoriales Linux >  >> Linux

Salida de tubería a cortar

La primera línea:

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

dice:

  • Ejecutar ps | grep $PPID en una subcapa
  • Devuelve la salida, que será algo como esto:

    3559 pts/1 00:00:00 bash
    

    y luego use esa salida como el primer parámetro de eco, lo que, en la práctica, significa simplemente hacer eco de la salida

  • Luego ejecuta cut -d" " -f4 en eso, lo que le da el nombre del comando en este caso

El segundo comando:

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

dice:

  • Cadena de eco ps
  • Grep esa cadena para $PPID - esto nunca devolverá nada, como $PPID contiene un número, por lo que nunca será ps . Por lo tanto, grep no devuelve nada
  • Ejecutar cut -d" " -f4 con la entrada del comando anterior, que no es nada, por lo que no obtiene nada

La razón es que

echo ps

simplemente imprime la cadena ps; no ejecuta el programa ps . La versión corregida de su comando sería:

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

Editado para agregar: paxdiablo señala que ps | grep $PPID incluye muchos espacios en blanco que se colapsarán por echo $(ps | grep $PPID) (ya que el resultado de $(...) , cuando no está entre comillas dobles, se divide por espacios en blanco en argumentos separados y luego echo genera todos sus argumentos separados por espacios). Para abordar esto, puede usar tr para "comprimir" espacios repetidos:

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

o puede quedarse con lo que tenía al principio. :-)


Linux
  1. ¿Cómo ordenar la salida Du por tamaño?

  2. Linux – ¿Se cambió la salida de Ps Lstart?

  3. ¿La tubería para la salida del lazo evita la modificación de la variable local?

  4. ¿Ordenar salida por columna?

  5. generar la segunda columna de un archivo

Bash:escribir en archivo

Cortar Comando en Linux

Ccat – Colorear la salida del comando Cat

Explicación de la redirección de entrada y salida en Linux

Convierta la salida ls en csv

gzip - ¿redireccionamiento o canalización?