No estas registrado.

#1 2014-09-03 08:00:25

sflibre
SFLibre
Desde: Argentina
Registrado: 2014-04-29
Mensajes: 13
Página Web

Consulta sobre BASH - >/dev/null 2>&1

Hola a todos en el foro.

Creo entender que hace ">/dev/null 2>&1", pero si alguien se molesta en explicarlo sencillamente seria bueno, para saber si estoy en lo correcto. He leído mucho antes de preguntar y aún así tengo una duda.

El punto es que, dado una instrucción en lineas de comando o en un script, determina si el comando ingresado es correcto o no.

Por ejemplo:

Caso 1 (Imprime "Correcto"):

df -h >/dev/null 2>&1 && echo "Correcto" || echo "Incorrecto"
Correcto

Caso 2 (Imprime "Incorrecto"):

noesuncomando >/dev/null 2>&1 && echo "Correcto" || echo "Incorrecto"
Incorrecto

Bien mi duda es, ¿Cómo determina que comando es correcto e imprime "Correcto" y viceversa?

Hay algo que sucede antes de imprimir en pantalla (en este caso) y no logro comprender que es, para que imprima una cosa u otra.

Gracias.


"El conocimiento no es una mercancía, es una transmisión, una traducción, una tradición, una herencia, que como tal me preexiste" Horacio Potel

Desconectado

#2 2014-09-03 10:55:18

YukiteruAmano
SystemInside Staff
Desde: /home/yukiteru
Registrado: 2013-05-12
Mensajes: 1,049
Página Web

Re: Consulta sobre BASH - >/dev/null 2>&1

>/dev/null 2>&1

En resumen, lo que el comando significa es que toda salida que produzca el programa debe ir a /dev/null. De esta manera, nuestro programa funcionará de manera totalmente silenciosa, sin mostrar mensajes de ningún tipo.

Por acá te dejo un enlace que habla un poco más de ello.

http://linux.systeminside.net/que-es-de … -ayudarte/


Dios en su Cielo, todo bien en la Tierra / God in his Heaven, all right in the Earth.

Desconectado

#3 2014-09-03 13:42:26

sflibre
SFLibre
Desde: Argentina
Registrado: 2014-04-29
Mensajes: 13
Página Web

Re: Consulta sobre BASH - >/dev/null 2>&1

YukiteruAmano escribió:
>/dev/null 2>&1

En resumen, lo que el comando significa es que toda salida que produzca el programa debe ir a /dev/null. De esta manera, nuestro programa funcionará de manera totalmente silenciosa, sin mostrar mensajes de ningún tipo.

Por acá te dejo un enlace que habla un poco más de ello.

http://linux.systeminside.net/que-es-de … -ayudarte/

Ok. Entiendo eso, pero no logro comprender el efecto que hace en el ejemplo que dí.
Todo funciona de manera silenciosa, pero seǵun el ejemplo que mencioné, ¿Cómo sabe que el comando es correcto o no?

$ df -h >/dev/null 2>&1 && echo "Correcto" || echo "Incorrecto"
$ Correcto

No logro comprender qué pasa en ese silencio. En el ejemplo anterior, el comando es correcto, existe, e imprime "Correcto", no entiendo qué es lo que sucede en el ejemplo anterior.

Gracias nuevamente y espero haberme explicado bien.


"El conocimiento no es una mercancía, es una transmisión, una traducción, una tradición, una herencia, que como tal me preexiste" Horacio Potel

Desconectado

#4 2014-09-03 15:58:39

YukiteruAmano
SystemInside Staff
Desde: /home/yukiteru
Registrado: 2013-05-12
Mensajes: 1,049
Página Web

Re: Consulta sobre BASH - >/dev/null 2>&1

Eso se resuelve gracias al uso de && y ||.

En el primer caso, el uso de &&, nos indica que un segundo comando va a ejecutarse si y solo si, el primer comando se llevo a cabo. En el caso de tu script, si el comando que se está revisando es correcto, la segunda orden a llevarse a cabo es, la impresión del mensaje "Correcto" (echo "Correcto"), y allí termina la ejecución.

Para el segundo caso, el uso de ||, es lo que permite la impresión del segundo mensaje, y esto significa, que ejecute el segundo comando si y solo si, el primer comando NO se ejecuta, lo que te permitiría saber que el comando es incorrecto, imprimiendo el mensaje correspondiente.

Gracias a esos dos operadores lógicos que puedes hacer que el script funcione de esa manera.


Dios en su Cielo, todo bien en la Tierra / God in his Heaven, all right in the Earth.

Desconectado

#5 2014-09-03 17:31:57

Wada
Staff
Registrado: 2012-07-31
Mensajes: 448
Página Web

Re: Consulta sobre BASH - >/dev/null 2>&1

Hice un post sobre stanndards streams pero como lo mande el sabado, ya no lo quisieron publicar, así que este viernes seguro lo publicaran hahaha


[⠠⠵] || Archlinux || Awesome || urxvt || Bash

Desconectado

#6 2014-09-03 17:41:00

YukiteruAmano
SystemInside Staff
Desde: /home/yukiteru
Registrado: 2013-05-12
Mensajes: 1,049
Página Web

Re: Consulta sobre BASH - >/dev/null 2>&1

¿Explicas el tema de los I/O estándar?. Si es así le será de ayuda al compañero para entender el tema.


Dios en su Cielo, todo bien en la Tierra / God in his Heaven, all right in the Earth.

Desconectado

#7 2014-09-04 10:20:59

sflibre
SFLibre
Desde: Argentina
Registrado: 2014-04-29
Mensajes: 13
Página Web

Re: Consulta sobre BASH - >/dev/null 2>&1

Gracias @wada @YukiteruAmano por responder, esperaré el post para el Viernes o estaré atento

Saludos.


"El conocimiento no es una mercancía, es una transmisión, una traducción, una tradición, una herencia, que como tal me preexiste" Horacio Potel

Desconectado

Pie de página

Powered by FluxBB