スクリプトの変数と引用符(sedコマンドを含む)

スクリプトの変数と引用符(sedコマンドを含む)

このスクリプトを動作させようとしています。

#!/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

関連情報