스크립트의 변수 및 따옴표(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

관련 정보