Daher habe ich auch versucht zu verstehen wie das erstellen von /boot/grub/grub.cfg abläuft und was man wo ändern müsste (nicht zu verwechseln damit dass ich das könnte )
- update-grub is a stub for running grub-mkconfig -o /boot/grub/grub.cfg
- grub-mkconfig - eine GRUB-Konfigurationsdatei erzeugen
- /etc/grub.d/40_custom: the script is essentially running tail on itself, but with -n +3, which tells tail to start from the third line.
https://unix.stackexchange.com/question ... onfig-have
So wie ich das verstehe unterbindet "exec" alle weiteren Commands die man in das script schreiben würde, so auch "echo" (was allerdings ohnehin nicht wäre was ich für sinnvoll hielte).
In Pseudocode ausgedrückt würde ich wollen dass der mittels "tail usw" erzeugte Datenstrom nicht nur in /boot/grub/grub.cfg landet sondern *zusätzlich* gegrept wird und die *Namen* der Menüentries im Terminal ausgegeben werden.
Ich habe ein bisschen herumgegrept, und tobo war so nett zu zeigen wie es geht wenn man es kann
Damit und dem script habe ich heute etwas herumgespielt und mehr durch try & error herausgefunden wie es halbwegs hinhaut (nicht wirklich so wie oben angesprochen):
/etc/grub.d/40_custom (neu)
Code: Alles auswählen
#!/bin/sh
grep -oP "(?<=^menuentry ')[^']+" $0 >&2
exec tail -n +4 $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.
<Nutzereinträge
...>
(Ich finde es deshalb nicht elegant, weil es am Bildschirm etwas ausgibt ohne dass dies bereits erledigt wäre und ohne sicher zu sein dass es tatsächlich klappt; vllt ist das aber auch ein zu hoher Anspruch)
V2:
Code: Alles auswählen
#!/bin/sh
sed -En "s/^menuentry '([^']+).*/Found custom entry: \1/p" $0 >&2 #new for feedback on terminal
exec tail -n +4 $0 # +4 instead of +3 due to above line
# 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.
<Nutzer Einträge>
Code: Alles auswählen
#!/bin/sh
if grep -Fxq "#GRUB_DISABLE_OS_PROBER=false" /etc/default/grub; then
sed -En "s/^menuentry '([^']+).*/Found custom entry: \1/p" $0 >&2;
fi; #new for feedback on terminal
exec tail -n +6 $0 # +6 instead of +3 due to above lines
# 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.
<Nutzer Einträge>