Entrada YSalida
Entradas y Salidas en Bash Script
Section titled “Entradas y Salidas en Bash Script”Este documento explica como usar la redirección de contenido en bash script de (entradas y salidas y errores en bash).
Descriptores de archivos
Section titled “Descriptores de archivos”En Bash hay 3 descriptores de archivos principales:
Los descriptores 3, 4, 5, … son opcionales y se usan en programas más avanzados. Para referirse a un descriptor se usa su número (por ejemplo 2> archivo). Para el descriptor 1, el número puede omitirse (> equivale a 1>).
1 Entrada: redirigir desde un archivo <
Section titled “1 Entrada: redirigir desde un archivo <”cat < ./4.estControl.sh2 Salida: redirigir la salida normal > y >>
Section titled “2 Salida: redirigir la salida normal > y >>”echo "hola," > ./salida.txt # Sobrescribe el archivoecho "mundo!" >> ./salida.txt # Agrega al final3 Errores: redirigir errores 2>
Section titled “3 Errores: redirigir errores 2>”ls noExiste 2> errores.txtJuntar salida y errores
Section titled “Juntar salida y errores”comando > todo.txt 2>&1Esto significa:
- El descriptor 1 (salida estándar) se envía al archivo todo.txt.
- El descriptor 2 (errores) se redirige hacia donde va la salida estándar (&1).
En resumen:
“Manda los errores al mismo lugar donde está yendo la salida normal”.
Pipes (|)
Section titled “Pipes (|)”ls | grep .txtEnvía la salida de ls al comando grep, que muestra solo los archivos .txt.
Redirección combinada &>
Section titled “Redirección combinada &>”ls carpeta_inexistente &> salida.txtEquivale a:
ls carpeta_inexistente > salida.txt 2>&1Comando cat (concatenate)
Section titled “Comando cat (concatenate)”cat ./1.comandosBash/5.EntradaYSalida.sh # Mostrar un archivocat a.txt b.txt > c.txt # Unir archivoscat a.txt >> b.txt # Añadir uno al final del otroTambién puedes crear un archivo nuevo escribiendo directamente:
cat > nuevo.txtHolaMundo# (Presiona CTRL+D para terminar)Comando tee
Section titled “Comando tee”El comando tee guarda la salida en archivos y también la muestra en pantalla.
echo "Hola mundo" | tee salida.txt # Guardar y mostrarls | tee -a lista.txt # Modo appendls | tee archivo1.txt archivo2.txt # Guardar en varios archivos