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