파일의 문자열을 스크립트로 바꾸기 [중복]

파일의 문자열을 스크립트로 바꾸기 [중복]

문자열을 바꾸는 방법 중 하나 sed는 다음과 같습니다.

sed -i 's/old_str/new_str/' file.txt

그러나 만일 replace.sh그렇다면

 sed -i 's/$1/$2/' $3

물론 실행 가능한 후에는 명령이 ./replace.sh old_str new_str file.txt작동하지 않는 것 같습니다 . replace.sh왜 그런 겁니까?


나는 rpl그것이 내가 하려는 일을 정확하게 수행한다는 것을 알고 있지만 replace.sh왜 그것이 작동하지 않는지 알고 싶습니다.

답변1

작은따옴표 안에는 매개변수 확장이 없습니다(참조:stackoverflow에 대한 이전 답변)

toto=1
echo '$toto'
> $toto
echo "$toto"
> 1

작은따옴표를 큰따옴표로 바꾸면 스크립트가 예상대로 작동합니다.

관련 정보