Nu weer OnTopic:
Het programma/script is nu versimpeld en vereist geen ingrepen meer, anders dan het invullen van het sudo wachtwoord.
Het Basic programma controleert of er 2 of meer keer de tekst /dev/sdXY in een regels staat en wanneer deze verschillend zijn, dan worden deze regel en de volgende regels verwijderd, tot aan een }.
Mochten er vragen over zijn, dan kan ik deze beantwoorden.
Het script gaat eerst naar de map /home/ron/bin (in mijn geval) en maakt daar m.b.v. het Basic programma, een nieuwe grub.cfg aan.
Vervolgens wordt gegaan naar de map /boot/grub en wordt de file grub.cfg hernoemd naar grub.oud (=backup en voor controle).
Tot slot wordt de file /home/ron/bin/grub.cfg verplaatst naar /home/grub.
De files heten bij mij grub.bas en grub, waarbij de laatste uitvoerbaar is, beiden staan in de map /home/ron/bin en dus in het path.
Het bash script grub#! /bin/bash
cd /home/ron/bin
bwbasic grub.bas
cd /boot/grub
sudo mv grub.cfg grub.oud
sudo mv /home/ron/bin/grub.cfg .
Het programma grub.bas1000 open "/boot/grub/grub.cfg" for input as #1
1010 open "grub.cfg" for output as #2
1020 if eof(1) then close : quit
1030 line input #1 , regel$
1040 a = instr(regel$ , "/dev")
1050 if a = 0 then goto 8000
1060 a1$ = left$(regel$ , a)
1070 a2$ = right$(regel$ , len(regel$)-a)
1080 dev1$ = mid$(regel$ , a , 9)
1090 a = instr(a2$ , "/dev")
1100 if a = 0 then goto 8000 : rem /dev komt maar één keer voor
1110 a1$ = left$(a2$ , a)
1120 dev2$ = mid$(a2$ , a , 9)
1120 a2$ = right$(a2$ , len(a2$)-a)
1130 if dev1$ <> dev2$ then goto 2000
1140 goto 1090
2000 rem **************************************** rem menuentry moet weg
2010 if eof(1) then close : print "FOUT" : quit
2020 line input #1 , a$
2030 if instr(a$ , "}" ) then goto 1020
2040 goto 2010
8000 rem ****************************************
8010 print #2 , regel$
8020 goto 1020