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
、shellbangとして記述した場合はどうなりますか?ファイルの残りを印刷しますか?