このスクリプトを動作させようとしています。
#!/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