Así que vamos a darles un repaso a esto para que usemos mas la Terminal(Consola) de nuestro sistema tipo Unix o single Unix :D
Primero que nada vamos a ver los tres tipos de flugos que existen
stdin : Standard input (Entrada estándar)
stdout : Standard Out (Salida estándar)
stderr : Standard Error(Error estándar)
Explicación:
stdin
stdin es la entrada estándar de nuestro teclado en la mayoría de los casos,mas que nada para interactuar con nosotros y recoger información.
Si visitan este sitio a menudo se habran dado cuenta que coloco algunos scripts en Perl,este lenguaje usa stdin para recoger información desde el teclado:
<STDIN>Así que en la shell de Unix o Bash/etc no seria mas que solamente escribir algo y estaríamos usando stdin.
stdout
Lo contrario a stdin es la salida de lo que pedimos con stdin,por ejemplo lo que sale de
cat archivo
Al escribir cat archivo estamos haciendo stdin, y al mostrarnos la salida es stdout.
stderr
Esto es los mensajes de error,que imprime la consola al hacer algo que no se puede o da error
por ejemplo escribir
sajdfsjfOperadores
Como lo habíamos visto antes existen tuberías que redireccionan nuestros comandos, aquí vamos a adentrarnos un poco mas,ya que vamos a hablar mas a fondo de redireccionar stdin stderr y stdout.
Comando >
Redirige el stdout a un archivo,si este no existe lo crea y si existe lo borra y lo llena con el nuevo contenido.
Ejemplo:
echo "Hola" > archivo.txt
Comando >>
Redirige stdout a un archivo,si este no existe lo crea y si existe añade la salida al final.
Ejemplo:
echo "hola" >> archivo.txt && echo "hola" >> archivo.txt
Comando 2>
Crea un archivo con stderr, si ya existe lo borra y lo llena con el nuevo contenido.
Comando 2>>
Redirige stderr a un archivo,si este no existe lo crea y si existe añade la salida al final.
Comando &>
Crea un archivo que contiene el stderr y el stdin. Si el fichero existe,lo borra y lo llena con el nuevo contenido.
Ejemplo
cat ksksjd archivo.txt &> fichero.txtEste nos manda los errores como la salida normal:
Otra forma de hacer esto es:
cat kdkkd archivo.txt > fichero.txt 2>&1
El comando <
Lo que hace este comando no es gran cosa,ya que como dige hace stdin el cual ya estamos haciendo al escribir
Osea que podemos hacer esto
cat < archivo.txt
Y es igual que esto
cat archivo.txtO
ls < ~/
Es igual que
ls ~/o
echo -e "Mi HOME\n" > mis_archivos.txt && ls < ~/ >> mis_archivos.txt
Es igual que
echo -e "Mi HOME\n" > mis_archivos.txt && ls ~/ >> mis_archivos.txt
Aunque hay algunas excepciones
Comando <<
Con este comando entramos al $PS2 y podemos meter todas las lineas que queramos ya que es stdin sin final de linea,osea que no borra el archivo que usemos.
Ejemplo:
cat << SALIR >> fichero2.txtEsto es un poco mas complicado ya que al hacer esto es como si comenzaramos a escribir en un editor de texto,el cual mandara lo que escribamos a fichero2.txt y terminaremos de escribir al escribir SALIR:
Eso es todo :D
-->
Y el $PS2 no lo modificas ^~^
ResponderBorrarPor lo menos:
echo 'PS2="-{ "' >> ~/.bashrc && source ~/.bashrc
(^▼^) (^▼^) (^▼^)
Casi no entro al $PS2 pero no esta de mas ese pipe que mencionas :D
BorrarPara un poco mas de personalizacion