Você poderia usar caracteres de escape antes de cada caractere especial ( <
, [
, >
, ]
), mas seria um pouco complicado nesse caso. Em vez disso, você pode simplesmente cercar o argumento inteiro com aspas simples da seguinte forma:
$ ./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>'
Outra opção é colocar a string de parâmetro
<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>
em um arquivo (por exemplo, params
). Isso permite chamar sua função em combinação com o comando cat
, que gera o conteúdo de um arquivo:
$ ./a.out "$(cat params)"
Observe que $()
é usado para executar o comando cat params
e as cotações duplas são usadas para incluir a totalidade do arquivo como o parâmetro para a.out
. Com a combinação dos dois, podemos passar o conteúdo do arquivo para os parâmetros do seu programa.