¿Qué hace esta statement `cat`?

Soy nuevo en Linux y trato de descubrir qué hace esta statement en un file Bash. Creo que combina stdout , stderr y lo stderr al file $log apuntando y anexando la cadena multilínea a él. ¿Es correcto?

 cat << EOF >> $log 2>&1 the quick brown fox jumps EOF 

Primero, el cat debe escribirse en minúscula. Esta instrucción de command usa el concepto de aquí documentos .

La primera parte cat << EOF significa que stdin (input estándar) del command viene después. Todo lo que viene después de la primera línea hasta que la palabra EOF es la input estándar para el command cat . O de la documentation:

Este tipo de networkingirección ordera al shell que lea la input de la fuente actual hasta que se vea una línea que contiene solo un delimitador (en su caso es EOF ) (sin espacios en blanco al final). Todas las líneas leídas hasta ese punto se usan luego como input estándar para un command.

La segunda parte del command >> $log 2>&1 significa que los resultados de stdout y stderr ambos, deben adjuntarse a un file cuyo nombre se encuentre en la variable $log .

Conclusión: ahora se genera un file como este:

 the quick brown fox jumps