Я пытаюсь понять файлы конфигурации grub. Итак, во время этого процесса я натолкнулся на файл /etc/grub.d/40_custom . Мой файл содержит следующие строки:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 10" --class windows --class os {
insmod part_msdos
savedefault
insmod ntfs
insmod ntldr
set root='(hd0,msdos1)'
ntldr ($root)/bootmgr
}
так как у меня система с двойной загрузкой и, видимо, это загрузчик для windows 10.
Мой вопрос, хотя это эта часть exec tail -n +3 $0
.
Если я расшифровываю его правильно, это просто означает, что выведите последние строки, начиная с 3-й строки ( +3
) файла $0
. $0
Конечно, в этом случае используется файл /etc/grub.d/40_custom .
Итак, почему мы используем эту команду в файле 40_custom ? Насколько я понимаю, результат был бы таким же, если бы вообще не было ιt. Единственное отличие, о котором я могу подумать, это 1-я строка, которая идентифицирует переводчика:
#!/bin/sh
Но с другой стороны это выполняется, так как exec tail -n +3 $0
следует за этим. Так это просто (бесполезное) соглашение?
#!/bin/tail -n +2
как ракушка? Будет ли печатать остальную часть файла?