2017-11-06 37 views
0

私のプログラムは、#記号を見つけた後に端末から渡した引数の読み込みを停止します。私はそれを実行exempleするためargvの文字列としてspec文字を読み取る方法

./myprogram ARG1 ARG2 ARG3 ## ARG4引数5 arg6

私のargc 4(プログラム名+第一3つの引数)が、私のプログラムドンです##の後に引数がありません(引用符を追加すると動作しますが、私はそれを使わないでください)。

私のプログラムを文字列として見せる方法はありますか?

+0

あなたのプログラムはどこですか? – mrid

+0

あなたはどのコマンドシェルを使用していますか? – DodgyCodeException

答えて

1

ほとんどの場合、あなたのシェルは#文字をコメントの先頭として解釈し、その後のすべてを無視しています。その前に\をつけて#をエスケープするか、または引数全体を一重引用符で囲むかのいずれかができます。

./myprogram arg1 arg2 arg3 \#\# arg4 arg5 arg6 

または

./myprogram arg1 arg2 arg3 '##' arg4 arg5 arg6 

プログラムでは、同じように、これらの入力の両方が表示されます - 引数が##になります。

+0

それは '\#\#'や ''##''で動作しますが、私はそれを使わなければなりません。 –

+0

'# 'をコメントとして解釈しないようにするには、別のシェルが必要です。 – thesun

関連する問題