我正在尝试让这个脚本工作:
#!/bin/bash
win_location=$(cat /boot/grub/grub.cfg | grep 'class windows' | cut -d "'" -f2)
sudo sed -i 's/^'GRUB_DEFAULT='.*$/GRUB_DEFAULT="$win_location"/' /etc/default/grub
sudo update-grub2
但问题是它无法识别该变量,该变量应该在文件的引号之间打印,因为它的值包含空格。
任何想法?
先感谢您
答案1
如果你想在 sed 中使用变量,请使用双引号而不是单引号
根据您的示例,您在 sed 中有变量
sudo sed -i "s|^GRUB_DEFAULT=.*$|GRUB_DEFAULT=\"$win_location\"|g" /etc/default/grub