Я намагаюся зрозуміти файли конфігурації 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 взагалі було пропущено. Єдине, що я міг би придумати, - це перший рядок, який ідентифікує перекладача:
#!/bin/sh
Але потім воно виконується, оскільки exec tail -n +3 $0
слідує за ним. Отже, це просто (марна) конвенція?
#!/bin/tail -n +2
як черепашник? Чи надрукує решту файлу?