명령 줄에서 앰퍼샌드의 평가를 건너 뛰는 방법?


13

Google지도 길 찾기 URL을 명령 줄에 입력 할 때 (터미널을 통해 크롬 브라우저로 여는 경우 &) URL에 앰퍼샌드 ( )가 있지만 Unix 항목이 Unix 항목이므로 터미널이 URL을 끊습니다. 터미널에 입력 할 수있는 것이 있습니까? 명령이 실제로 통과하면 앰퍼샌드처럼 취급됩니까?

의지; 작업?

답변:


15

주소를 따옴표로 묶어야합니다.

chromium-browser 'http://whatever.com/?x=1&y=2'

좋아, 나는 마지막에 견적을 받았지만 앞의 견적은 아니었다. 감사합니다.
Leron

7

따옴표는이 문제를 해결하지만 백 슬래시로 물건을 벗어날 수도 있습니다.

echo http://whatever.com/?x=1\&y=2

이것이 더 좋다고 말하지는 않지만, 이런 상황에 대한 또 다른 옵션 일뿐입니다.


1

이 경우 실제로 중요하지 않지만 작은 따옴표와 큰 따옴표 사이에는 차이가 있습니다.

큰 따옴표는 '$'및 따옴표와 같은 특수 문자를 대체하는 반면 작은 따옴표는 닫는 작은 따옴표를 제외한 모든 것을 문자 그대로 처리합니다.

둘 다 텍스트를 그룹화하여 크롬이 단일 인수로 취급하게하고 "; # &"와 같은 문자는 해당 컨텍스트에서 특별한 의미가 없습니다.

이것은 큰 따옴표 안에 큰 따옴표를 이스케이프하기 위해 '\'를 사용하고 백 슬래시 자체를 보여줍니다.

mat@sen:~$ echo "a&bc\\#de\"f"
a&bc\#de"f

작은 따옴표를 사용하면 아무런 변화가 없습니다.

mat@sen:~$ echo 'a&bc\\#de\"f'
a&bc\\#de\"f

따옴표없이 '&'는 두 개의 명령으로 나눕니다.

mat@sen:~$ echo a&bc\\#de\"f
[1] 2619
a
bc\#de"f: command not found
[1]+  Done                    echo a
[1]+  Done                    echo a

일반적으로 한 종류의 견적을 처리 할 때 다른 유형으로 포장 할 수는 있지만 다음과 같은 문제가 발생할 수 있습니다.

mat@sen:~$ echo "'a'bc$foo"
'a'bc

작은 따옴표는 대체되지 않지만 '$'는 대체됩니다. 다음 구문은 작동합니다.

mat@sen:~$ echo $'a\'bc$foo'
a'bc$foo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.