![명령 출력을 sed에 전달하는 방법](https://rvso.com/image/1419622/%EB%AA%85%EB%A0%B9%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20sed%EC%97%90%20%EC%A0%84%EB%8B%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
나의sed명령을 내리다#구성 파일의 업데이트 키. 변수의 내용을 가져오지 않습니다.$GETKEY 누군가 나를 도와줄까요?
# Get key from output of the website.
GETKEY=`wget https://www.badips.com/get/key -qO - | awk {'print $9'} | cut -d ":" -f3 | cut -d "}" -f1 | sed 's/\"//g'`
if [ $? -eq 0 ]
then
# Update key in config file.
sed -i 's/^\(KEY\s*=\s*\).*$/\1$GETKEY/' Config
fi
답변1
변수는 작은따옴표로 대체되지 않습니다. 사용:
sed -ri "s/^(KEY\\s*=\\s*).*$/\\1$GETKEY/" Config
이전에는 괄호를 이스케이프해야 하는 필요성을 제거 했지만 -r
다른 백슬래시는 작은따옴표로 이스케이프해야 합니다. 그렇지 않으면 따옴표를 혼합할 수 있습니다.
sed -ri 's/^(KEY\s*=\s*).*$/\1'"$GETKEY/" Config