저는 쉘 스크립팅을 처음 접했습니다. 조금씩 배우고 있어요. 나는 PHP에 더 익숙하고 지금은 나에게 불리하게 작용하고 있습니다.
어쨌든 저는 다음을 사용하여 쉘 스크립트를 작성하고 입력을 읽고 있습니다.
read $foo
이제 다음과 같이 sed 문자열 대체에 이 변수를 사용하고 싶습니다.
sed -i 's/replaceme/$foo' myfile.txt
내가 얻는 것은 $foo가 실제로 동일하지 않은 문자 그대로의 대체입니다. 대신, 나는 그것이 사용자의 입력이 되기를 원합니다:
예:
이 줄( read $foo
)을 사용하세요. "bar"를 입력했다고 가정해 보겠습니다. 그러므로$foo='바'사용자 입력에서.
현재 출력:
$foo
원하는 출력
bar
이것이 의미가 있기를 바랍니다.
답변1
짧은 대답: 작은 따옴표 대신 큰 따옴표를 사용하십시오.
작은따옴표는 쉘 변수가 확장되는 것을 방지하지만 큰따옴표는 그렇지 않습니다.
자세한 내용은 다음을 참조하세요.http://www.grymoire.com/Unix/Quote.html
자세한 내용은 셸 문서에 포함되어 있으며 셸마다 약간의 차이가 있지만 기본은 거의 모든 Unix 스타일 셸에서 동일합니다.