예를 들어
$ gcc -Wall abc.c
$ ./a.out <font name="Moronicity" size=12><!-- ignore this comment --><i></i>
<div style="aa">hello</div></font><img src="spacer.gif">
<div style="bb"><img src="spacer.gif"></div>
-bash: 예상치 못한 표시 "<" 근처에서 구문 오류가 발생했습니다.
이 오류가 계속 발생합니다.
답변1
이 HTML 텍스트가 필요한 경우범위프로그램에 추가한 다음 셸에서 보호하기 위해 이를 인용해야 합니다(셸은 미만 기호를 리디렉션으로 처리하는 등).
./a.out '<font name="Moronicity" size=12><!-- ignore this comment --><i></i>
<div style="aa">hello</div></font><img src="spacer.gif">
<div style="bb"><img src="spacer.gif"></div>'
프로그램에 HTML 텍스트를 보내야 하는 경우입력하다(stdin), 여기에 설명된 대로 참조할 수 있습니다. 나머지 텍스트가 열 1에서 시작된다는 것을 보여주기 위해 첫 번째 줄을 더 들여썼습니다.
./a.out << 'EOF'
<font name="Moronicity" size=12><!-- ignore this comment --><i></i>
<div style="aa">hello</div></font><img src="spacer.gif">
<div style="bb"><img src="spacer.gif"></div>
EOF
작은따옴표를 둘러싸면 EOF
텍스트의 인수가 확장되지 않습니다.
답변2
<
각 특수 문자( , [
, >
, ) 앞에 이스케이프 문자를 사용할 수 있지만 ]
이 경우 매우 번거롭습니다. 대신 다음과 같이 전체 인수를 작은따옴표로 묶을 수 있습니다.
$ ./a.out '<font name="Moronicity" size=12><!-- ignore this comment --><i></i>
<div style="aa">hello</div></font><img src="spacer.gif">
<div style="bb"><img src="spacer.gif"></div>'
또 다른 옵션은 매개변수 문자열을
<font name="Moronicity" size=12><!-- ignore this comment --><i></i>
<div style="aa">hello</div></font><img src="spacer.gif">
<div style="bb"><img src="spacer.gif"></div>
파일로(예: params
) 이를 통해 cat
파일 내용을 출력하는 명령과 함께 함수를 호출할 수 있습니다 .
$ ./a.out "$(cat params)"
$()
명령을 실행하는 경우 전체 cat params
파일을 인수로 포함하기 위해 큰따옴표를 사용합니다 a.out
. 두 가지를 결합하여 파일의 내용을 프로그램의 매개변수에 전달할 수 있습니다.