मैं grub config फ़ाइलों को समझने की कोशिश कर रहा हूँ। इसलिए, इस प्रक्रिया के दौरान मैं फ़ाइल /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
}
के रूप में मेरी प्रणाली दोहरी बूट है और जाहिरा तौर पर यह विंडोज़ 10 के लिए बूट लोडर है।
मेरा सवाल हालांकि यह हिस्सा है exec tail -n +3 $0
।
अगर मैं इसे सही ढंग से डिक्रिप्ट कर रहा हूं तो इसका मतलब +3
है कि फाइल की तीसरी लाइन ( ) से शुरू होने वाली आखिरी लाइनें प्रिंट करें $0
। $0
बेशक इस मामले में वास्तविक फ़ाइल /etc/grub.d/40_custom है ।
तो, हम 40_custom फ़ाइल में इस कमांड का उपयोग क्यों करते हैं ? जैसा कि मुझे लगता है कि आउटपुट समान होगा यदि ιt पूरी तरह से छोड़ा गया था। केवल एक अलग चीज जो मैं सोच सकता हूं वह है पहली पंक्ति जो दुभाषिया की पहचान करती है:
#!/bin/sh
लेकिन तब से इसे फिर से निष्पादित किया जाता exec tail -n +3 $0
है। तो, क्या यह सिर्फ (बेकार) सम्मेलन है?
#!/bin/tail -n +2
एक शेलबैंग के रूप में लिखेंगे? क्या यह बाकी फाइल को प्रिंट करेगा?