Skip to content

Instantly share code, notes, and snippets.

@neverkas
Last active June 12, 2023 16:39
Show Gist options
  • Select an option

  • Save neverkas/8a43e3e8fa797fc0d8a6c33c8fd79cc4 to your computer and use it in GitHub Desktop.

Select an option

Save neverkas/8a43e3e8fa797fc0d8a6c33c8fd79cc4 to your computer and use it in GitHub Desktop.

Revisions

  1. neverkas renamed this gist Jun 12, 2023. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. neverkas revised this gist Jun 12, 2023. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion README.rst
    Original file line number Diff line number Diff line change
    @@ -18,7 +18,7 @@ STDOUT y STDERR
    el STDOUT es la "Salida Estándar" (Standard Output)
    ****************************************************
    - el (fd) File Descriptor se representa con el valor 1 y lo encontramos en `/dev/fd/1`
    (no confundir con el "estado de salida" con valor 1 de un programa)
    - no confundir su (fd) que tiene valor 1 con el "estado de salida" de un programa con valor 1
    - si un programa escribe en el STDOUT, se imprime por la pantalla
    - Ej. el comando `echo` por defecto escribe en el stdout, lo que implíca que se imprima por pantalla

  3. neverkas revised this gist Jun 12, 2023. 1 changed file with 7 additions and 6 deletions.
    13 changes: 7 additions & 6 deletions README.rst
    Original file line number Diff line number Diff line change
    @@ -10,20 +10,21 @@ Estado de Salida (Exit status)
    STDOUT y STDERR
    ----------------

    el STDERR es "Error Estándar" (Standard Error)
    ***********************************************
    - se representa con el valor 2
    (STDERR) Error Estándar ó Standard Error
    *****************************************
    - el (fd) File Descriptor se representa con el valor 2 y lo encontramos en `/dev/fd/2`
    - si un programa escribe en el STDERR, es porque se utilizaron opciones que no posee ó sólo porque falló su ejecución

    el STDOUT es la "Salida Estándar" (Standard Output)
    ****************************************************
    - se representa con el valor 1 (no confundir con el estado de salida de un programa)
    - el (fd) File Descriptor se representa con el valor 1 y lo encontramos en `/dev/fd/1`
    (no confundir con el "estado de salida" con valor 1 de un programa)
    - si un programa escribe en el STDOUT, se imprime por la pantalla
    - (Ej. el comando `echo` por defecto escribe en el stdout, lo que implíca que se imprima por pantalla
    - Ej. el comando `echo` por defecto escribe en el stdout, lo que implíca que se imprima por pantalla

    Operador de redirección >
    --------------------------
    - redirecciona la salida de un programa a un archivo (Ej. a un archivo de tipo regular, a un archivo de dispositivo)
    - puede redireccionar la STDOUT (Salida estándar) de la forma `programa 1>archivo` ó bien `programa >archivo`
    - puede redireccionar el STDERR (Estándar error) de la forma `programa 2>archivo`
    - (Ej. redireccionamos la salida estándar al archivo de dispositivo /dev/null para NO imprimir por pantalla)
    - Ej. redireccionamos la salida estándar al archivo de dispositivo /dev/null para NO imprimir por pantalla
  4. neverkas revised this gist Jun 12, 2023. 1 changed file with 1 addition and 2 deletions.
    3 changes: 1 addition & 2 deletions pgrep-exit-status-example.sh
    Original file line number Diff line number Diff line change
    @@ -4,8 +4,7 @@
    # - utilizar el "Estado de Salida" (exit status) del comando `pgrep` para saber si un proceso está ejecutando

    # stdout: not running
    pgrep \
    --exact emacs26 >/dev/null && echo "running" || echo "not running"
    pgrep --exact emacs26 >/dev/null && echo "running" || echo "not running"

    # stdout: running
    pgrep --exact emacs27 >/dev/null && echo "running" || echo "not running"
  5. neverkas revised this gist Jun 12, 2023. 1 changed file with 5 additions and 2 deletions.
    7 changes: 5 additions & 2 deletions README.rst
    Original file line number Diff line number Diff line change
    @@ -9,18 +9,21 @@ Estado de Salida (Exit status)

    STDOUT y STDERR
    ----------------

    el STDERR es "Error Estándar" (Standard Error)
    ***********************************************
    - se representa con el valor 2
    - si un programa escribe en el STDERR, es porque se utilizaron opciones que no posee ó sólo porque falló su ejecución

    el STDOUT es la "Salida Estándar" (Standard Output)
    ****************************************************
    - se representa con el valor 1 (no confundir con el estado de salida de un programa)
    - si un programa escribe en el STDOUT, se imprime por la pantalla
    (Ej. el comando `echo` por defecto escribe en el stdout, lo que implíca que se imprima por pantalla
    - (Ej. el comando `echo` por defecto escribe en el stdout, lo que implíca que se imprima por pantalla

    Operador de redirección >
    --------------------------
    - redirecciona la salida de un programa a un archivo (Ej. a un archivo de tipo regular, a un archivo de dispositivo)
    - puede redireccionar la STDOUT (Salida estándar) de la forma `programa 1>archivo` ó bien `programa >archivo`
    - puede redireccionar el STDERR (Estándar error) de la forma `programa 2>archivo`
    (en éste caso redireccionamos la salida estándar al archivo de dispositivo /dev/null para NO imprimir por pantalla)
    - (Ej. redireccionamos la salida estándar al archivo de dispositivo /dev/null para NO imprimir por pantalla)
  6. neverkas revised this gist Jun 12, 2023. 2 changed files with 28 additions and 9 deletions.
    26 changes: 26 additions & 0 deletions README.rst
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    Conceptos Básicos
    ==================

    Estado de Salida (Exit status)
    -------------------------------
    - valor devuelto por un programa al terminar su ejecución
    - persiste en la variable especial de bash $?
    - el valor es 0 si el programa tuvo éxito, si es distinto de 0 entonces NO tuvo éxito

    STDOUT y STDERR
    ----------------
    el STDERR es "Error Estándar" (Standard Error)
    - se representa con el valor 2
    - si un programa escribe en el STDERR, es porque se utilizaron opciones que no posee ó sólo porque falló su ejecución

    el STDOUT es la "Salida Estándar" (Standard Output)
    - se representa con el valor 1 (no confundir con el estado de salida de un programa)
    - si un programa escribe en el STDOUT, se imprime por la pantalla
    (Ej. el comando `echo` por defecto escribe en el stdout, lo que implíca que se imprima por pantalla

    Operador de redirección >
    --------------------------
    - redirecciona la salida de un programa a un archivo (Ej. a un archivo de tipo regular, a un archivo de dispositivo)
    - puede redireccionar la STDOUT (Salida estándar) de la forma `programa 1>archivo` ó bien `programa >archivo`
    - puede redireccionar el STDERR (Estándar error) de la forma `programa 2>archivo`
    (en éste caso redireccionamos la salida estándar al archivo de dispositivo /dev/null para NO imprimir por pantalla)
    11 changes: 2 additions & 9 deletions pgrep-exit-status-example.sh
    Original file line number Diff line number Diff line change
    @@ -1,18 +1,11 @@
    # Conceptos
    # ---------
    # - el "Estado de Salida" (Exit status) de un programa se guarda en la variable especial $?
    # (si es 0 entonces tuvo éxito, si es distinto de 0 entonces NO tuvo éxito ó hubo un error)
    #
    # - el STDOUT es la "Salida Estandar" (Standard Output), suele ser la pantalla
    # (el comando `echo` por defecto escribe en el stdout, lo que implíca que se imprima por pantalla)

    # Escenario
    # ---------
    # - 1 proceso ejecutando (/usr/bin/emacs27)
    # - utilizar el "Estado de Salida" (exit status) del comando `pgrep` para saber si un proceso está ejecutando

    # stdout: not running
    pgrep --exact emacs26 >/dev/null && echo "running" || echo "not running"
    pgrep \
    --exact emacs26 >/dev/null && echo "running" || echo "not running"

    # stdout: running
    pgrep --exact emacs27 >/dev/null && echo "running" || echo "not running"
  7. neverkas revised this gist Jun 12, 2023. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions pgrep-exit-status-example.sh
    Original file line number Diff line number Diff line change
    @@ -18,13 +18,13 @@ pgrep --exact emacs26 >/dev/null && echo "running" || echo "not running"
    pgrep --exact emacs27 >/dev/null && echo "running" || echo "not running"

    # - stdout: (nothing, no se imprimirá nada por pantalla)
    # - estado de salida en $?: 1
    # - estado de salida de `pgrep`: 1 (no tuvo éxito, no encontró el programa emacs26 entre los procesos en ejecución)
    # - la variable especial de Bash $? tendrá el valor 1
    pgrep -x emacs26
    echo $?

    # - stdout: (nothing, no se imprimirá nada por pantalla)
    # - estado de salida en $?: 0
    # - estado de salida de `pgrep`: 0 (tuvo éxito, encontró el programa emacs27 entre los procesos en ejecución)
    # - la variable especial de Bash $? tendrá el valor 0
    pgrep -x emacs27 >/dev/null
    echo $?
  8. neverkas created this gist Jun 12, 2023.
    30 changes: 30 additions & 0 deletions pgrep-exit-status-example.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    # Conceptos
    # ---------
    # - el "Estado de Salida" (Exit status) de un programa se guarda en la variable especial $?
    # (si es 0 entonces tuvo éxito, si es distinto de 0 entonces NO tuvo éxito ó hubo un error)
    #
    # - el STDOUT es la "Salida Estandar" (Standard Output), suele ser la pantalla
    # (el comando `echo` por defecto escribe en el stdout, lo que implíca que se imprima por pantalla)

    # Escenario
    # ---------
    # - 1 proceso ejecutando (/usr/bin/emacs27)
    # - utilizar el "Estado de Salida" (exit status) del comando `pgrep` para saber si un proceso está ejecutando

    # stdout: not running
    pgrep --exact emacs26 >/dev/null && echo "running" || echo "not running"

    # stdout: running
    pgrep --exact emacs27 >/dev/null && echo "running" || echo "not running"

    # - stdout: (nothing, no se imprimirá nada por pantalla)
    # - estado de salida en $?: 1
    # - la variable especial de Bash $? tendrá el valor 1
    pgrep -x emacs26
    echo $?

    # - stdout: (nothing, no se imprimirá nada por pantalla)
    # - estado de salida en $?: 0
    # - la variable especial de Bash $? tendrá el valor 0
    pgrep -x emacs27 >/dev/null
    echo $?