Что делает этот оператор `cat`?

Я новичок в Linux и пытаюсь понять, что делает этот оператор в файле Bash. Я думаю, что он объединяет stdout , stderr и выводит его в файл $log , указывающий и добавляющий к нему многострочную строку. Это правильно?

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

Во-первых, cat должна быть записана в нижнем регистре. В этом командном заявлении используется концепция документов .

Первая часть cat << EOF означает, что после этого начинается команда stdin (стандартный ввод). Все, что происходит после первой строки, до тех пор, пока слово EOF станет стандартным вводом команды cat . Или из документации:

Этот тип перенаправления инструктирует оболочку читать входные данные от текущего источника до тех пор, пока не будет видна строка, содержащая только разделитель (в вашем случае это EOF ) (без конечных пробелов). Все строки, считываемые до этой точки, затем используются в качестве стандартного ввода для команды.

Вторая часть команды >> $log 2>&1 означает, что вывод stdout и stderr оба должны быть добавлены к файлу, имя которого находится в переменной $log .

Вывод: теперь создается такой файл:

 the quick brown fox jumps