sed 명령을 사용하여 Linux에서 문자를 어떻게 이스케이프합니까?단일 명령에서 문자를 이스케이프 처리하는 방법은 무엇입니까?
나는이
echo hey$ya
뭔가를 인쇄 할하지만 내가 얼마나 $ 문자를 탈출 할 수있는
hey
을받는거야?
sed 명령을 사용하여 Linux에서 문자를 어떻게 이스케이프합니까?단일 명령에서 문자를 이스케이프 처리하는 방법은 무엇입니까?
나는이
echo hey$ya
뭔가를 인쇄 할하지만 내가 얼마나 $ 문자를 탈출 할 수있는
hey
을받는거야?
\
은 이스케이프 문자입니다. 그래서 예는 다음과 같습니다
~ » echo hey\$ya
hey$ya
~ »
이유 만 seing있다 "안녕"에코 때문에 $
의, 쉘이 ya
라는 변수를 확장하려고한다는 것입니다. 그러한 변수가 없으므로 빈 문자열로 확장됩니다 (기본적으로 사라집니다). 또한 문자 탈출 할 수
echo 'hey$ya'
:
당신은 작은 따옴표를 사용할 수 있습니다, 그들은 변수 확장 방지
echo hey\$ya
문자열은 큰 따옴표로 묶을 수 있습니다 (예 : echo "hey$ya"
)을하지만, 이것들은 확장을 막지 못합니다. 실행중인 명령에 대해 별도의 인수로 단어 분리를 구분하는 대신 전체 표현식을 단일 문자열로 유지하는 것뿐입니다. 귀하의 경우 큰 따옴표를 사용하면 작동하지 않습니다.
작은 따옴표를 사용하는 것이 가장 좋은 방법이지만 'echo "hey $"ya'를 할 수도 있습니다. – codeforester
나는 그것을하기 위해 sed를 사용하고있다. 콘솔에서 ib 명령을 실행하면 작동하지만 스크립트에 추가 할 때 오류가 발생합니다. 왜 이런 일이 일어날 지 아십니까? : – Lost
@Lost 당신이 "할 때 sed를 사용하고 있습니다"라고 할 때 sed를 사용하여 무엇을 설명 할 수 있습니까? – Fred