Estoy tratando de entender los archivos de configuración de grub. Entonces, durante este proceso, me encontré con el archivo /etc/grub.d/40_custom . Mi archivo contiene las siguientes líneas:
#!/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 mi sistema es de arranque dual y aparentemente este es el gestor de arranque para Windows 10.
Sin embargo, mi pregunta es esta parte exec tail -n +3 $0
.
Si lo estoy descifrando correctamente, esto solo significa imprimir las últimas líneas a partir de la tercera línea ( +3
) del archivo $0
. $0
Por supuesto, en este caso es el archivo real /etc/grub.d/40_custom .
Entonces, ¿por qué usamos este comando en el archivo 40_custom ? A medida que lo entiendo, la salida sería la misma si se omitiera por completo. Lo único diferente en lo que podría pensar es en la primera línea que identifica al intérprete:
#!/bin/sh
Pero, de nuevo, se ejecuta ya que lo exec tail -n +3 $0
sigue. Entonces, ¿es solo una convención (inútil)?
#!/bin/tail -n +2
como un shellbang? ¿Imprimirá el resto del archivo?