Cat EOF en Bash
- Cat EOF en Bash
- Poner una cadena de varias líneas a un archivo en Bash
- Pasar una cuerda multilínea a una tubería en Bash
Este tutorial explica qué es cat EOF y su uso en bash.
Cat EOF en Bash
cat es un comando bash utilizado para leer, mostrar o concatenar el contenido de un archivo, mientras que EOF significa End Of File. El EOF es una indicación al shell de que el archivo que se estaba leyendo ha finalizado. cat << eof usa here-document. Los operadores de redirección << y <<- permiten la redirección de las líneas subsiguientes leídas por el shell a la entrada de un comando. Las líneas redirigidas se denominan here-document.
El here-document utiliza el siguiente formato.
[n] << word
here-document
delimeter
El here-document se trata como una sola palabra que comienza después de la siguiente nueva línea. Continúa hasta que haya una línea que contenga solo el delimitador o una nueva línea sin caracteres en blanco entre ellos.
Poner una cadena de varias líneas a un archivo en Bash
cat, <<, EOF y > proporcionan una forma interactiva de ingresar una cadena de varias líneas en un archivo. El EOF se conoce como Here Tag. La Here Tag le dice al shell que ingresará una cadena de varias líneas hasta la Here Tag. El << se utiliza para establecer la Here Tag. El > se usa para redirigir el contenido de entrada a un archivo específico, multiline.txt en nuestro caso.
cat << EOF > multiline.txt
> This is the first line
> This is the second line
> This is the third line
> EOF
También podemos usar cat, <<, EOF y > para escribir scripts bash como se muestra a continuación de forma interactiva.
cat << EOF > script.sh
#!/bin/bash
printf "Hello\n"
printf "Wordl!\n"
EOF
Pasar una cuerda multilínea a una tubería en Bash
El código siguiente utiliza cat, eof y pipe para redirigir el contenido de la cadena de entrada de varias líneas a una tubería y un comando especificados. La entrada se envía al comando grep que busca la cadena A y la entrada coincidente se envía al comando tee. El comando tee copia la entrada al archivo fruits.txt.
cat <<EOF | grep 'A' | tee fruits.txt
> Apple
> Orange
> Apricot
> Banana
> EOF
Comprobemos el contenido del archivo fruits.txt con cat.
cat fruits.txt
Producción :
Apple
Apricot
