Estou tentando entender os arquivos de configuração do grub. Então, durante esse processo, me deparei com o arquivo /etc/grub.d/40_custom . Meu arquivo contém as seguintes linhas:
#!/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
}
como o meu sistema é de inicialização dupla e, aparentemente, este é o carregador de inicialização para o Windows 10.
Minha pergunta é essa parte exec tail -n +3 $0
.
Se eu estiver decifrando corretamente, isso significa imprimir as últimas linhas a partir da 3ª linha ( +3
) do arquivo $0
. $0
é claro que, neste caso, é o arquivo real /etc/grub.d/40_custom .
Então, por que usamos este comando no arquivo 40_custom ? Na minha opinião, a saída seria a mesma se fosse omitido por completo. A única diferença em que posso pensar é a 1ª linha que identifica o intérprete:
#!/bin/sh
Mas, novamente, é executado desde que o exec tail -n +3 $0
segue. Então, isso é apenas uma convenção (inútil)?
#!/bin/tail -n +2
como um shellbang? Irá imprimir o restante do arquivo?