Vielen Dank, du hast absolut Recht!
tauscht man die einfachen Anführungszeichen gegen Doppelte aus, so hätte man theoretisch das richtige Komando für sed. Trotzdem wird dieser Befehl einen Fehler provozieren, da er zuerst durch die Shell interpretiert wird und diese Probleme mit den doppelten Anführungszeichen bei
loglevel=3 quiet bzw.
cryptdevice=$2:main:allow-discards loglevel=3 quiet bekomt:
$ sed -i -e "s/GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"/GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=$2:main:allow-discards loglevel=3 quiet"/g" /etc/default/grub
sed: -e expression #1, char 39: unterminated `s' command
Diese problematischen Anführungszeichen muss man dann noch mittels backslashes maskieren und erhält den funktionierenden Befehl:
$ sudo sed -i -e "s/GRUB_CMDLINE_LINUX_DEFAULT=\"loglevel=3 quiet\"/GRUB_CMDLINE_LINUX_DEFAULT=\"cryptdevice=$2:main:allow-discards loglevel=3 quiet\"/g" /etc/default/grub
PS: Hierfür sind root-Rechte notwendig (Schreibrechte auf
/etc/default/grub)!
@stefanhusmann
1.) Mit dem sudo hast du recht, war etwas hektisch 😉
2.) Ja, leider muss Das hier so kompliziert sein, da ich vor habe dies im Skript jeweils auf vielen (recht unterschiedlichen) Rechnern durchzuführen, die mal /dev/nvme0n* und mal /dev/sd* haben. Zudem schwankt auch das Partitionslayout hin und wieder ... und das Ganze auch noch möglichst automatisch ...
FG