in

linux – ¿Cómo funciona «cat

apple touch icon@2

POSIX 7

Kennytm citado man bash, pero la mayor parte de eso también es POSIX 7: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_04 :

Los operadores de redirección «

El documento aquí se tratará como una sola palabra que comienza después de la siguiente y continúa hasta que haya una línea que contenga solo el delimitador y una, sin caracteres en el medio. Luego comienza el siguiente documento aquí, si lo hay. El formato es el siguiente:

[n]<<word
    here-document
delimiter

donde la n opcional representa el número de descriptor de archivo. Si se omite el número, el documento aquí se refiere a la entrada estándar (descriptor de archivo 0).

Si se cita cualquier carácter en word, el delimitador se formará realizando la eliminación de comillas en word, y las líneas del documento aquí no se ampliarán. De lo contrario, el delimitador será la propia palabra.

Si no se citan caracteres en la palabra, todas las líneas del documento aquí se expandirán para la expansión de parámetros, la sustitución de comandos y la expansión aritmética. En este caso, en la entrada se comporta como las comillas dobles internas (consulte Comillas dobles). Sin embargo, el carácter de comillas dobles (‘»‘) no se tratará especialmente dentro de un documento aquí, excepto cuando las comillas dobles aparezcan dentro de» $ () «,» « «o» $ {} «.

Si el símbolo de redirección es «<tab> los caracteres se eliminarán de las líneas de entrada y de la línea que contiene el delimitador final. Si se especifica más de un operador «

Cuando se lee un documento aquí desde un dispositivo terminal y el shell es interactivo, escribirá el contenido de la variable PS2, procesada como se describe en Shell Variables, hasta el error estándar antes de leer cada línea de entrada hasta que se reconozca el delimitador.

Ejemplos de

Algunos ejemplos aún no se han dado.

Las cotizaciones evitan la expansión de parámetros

Sin comillas:

a=0
cat <<EOF
$a
EOF

Producción:

0

Con comillas:

a=0
cat <<'EOF'
$a
EOF

o (feo pero válido):

a=0
cat <<E"O"F
$a
EOF

Salidas:

$a

El guión elimina las pestañas iniciales

Sin guion:

cat <<EOF
<tab>a
EOF

dónde <tab> es una pestaña literal y se puede insertar con Ctrl + V <tab>

Producción:

<tab>a

Con guion:

cat <<-EOF
<tab>a
<tab>EOF

Producción:

a

Esto existe, por supuesto, para que pueda sangrar su cat como el código circundante, que es más fácil de leer y mantener. P.ej:

if true; then
    cat <<-EOF
    a
    EOF
fi

Desafortunadamente, esto no funciona para los caracteres de espacio: POSIX favorecido tab sangría aquí. ¡Ay!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

nodejs sample

Node.js – Express Framework

gfg 200x200 min

Encapsulación en Python – GeeksforGeeks