Saya mencoba memahami file konfigurasi grub. Jadi, selama proses ini saya menemukan file /etc/grub.d/40_custom . File saya berisi baris-baris berikut:
#!/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
}
karena sistem saya adalah dual boot dan ternyata ini adalah boot loader untuk windows 10.
Pertanyaan saya adalah bagian ini exec tail -n +3 $0
.
Jika saya mengartikannya dengan benar, ini berarti mencetak baris terakhir mulai dari baris ke-3 ( +3
) file $0
. $0
tentu saja dalam kasus ini adalah file aktual /etc/grub.d/40_custom .
Jadi, mengapa kita menggunakan perintah ini dalam file 40_custom ? Ketika saya mendapatkannya output akan sama jika ιt dihilangkan sama sekali. Satu-satunya perbedaan yang mungkin saya pikirkan adalah baris pertama yang mengidentifikasi penerjemah:
#!/bin/sh
Tapi sekali lagi itu dijalankan sejak exec tail -n +3 $0
mengikutinya. Jadi, apakah ini hanya konvensi (tidak berguna)?
#!/bin/tail -n +2
sebagai shellbang? Apakah akan mencetak sisa file?