私のプログラムは、#記号を見つけた後に端末から渡した引数の読み込みを停止します。私はそれを実行exempleするためargvの文字列としてspec文字を読み取る方法
./myprogram ARG1 ARG2 ARG3 ## ARG4引数5 arg6
私のargc 4(プログラム名+第一3つの引数)が、私のプログラムドンです##
の後に引数がありません(引用符を追加すると動作しますが、私はそれを使わないでください)。
私のプログラムを文字列として見せる方法はありますか?
私のプログラムは、#記号を見つけた後に端末から渡した引数の読み込みを停止します。私はそれを実行exempleするためargvの文字列としてspec文字を読み取る方法
./myprogram ARG1 ARG2 ARG3 ## ARG4引数5 arg6
私のargc 4(プログラム名+第一3つの引数)が、私のプログラムドンです##
の後に引数がありません(引用符を追加すると動作しますが、私はそれを使わないでください)。
私のプログラムを文字列として見せる方法はありますか?
ほとんどの場合、あなたのシェルは#
文字をコメントの先頭として解釈し、その後のすべてを無視しています。その前に\
をつけて#
をエスケープするか、または引数全体を一重引用符で囲むかのいずれかができます。
./myprogram arg1 arg2 arg3 \#\# arg4 arg5 arg6
または
./myprogram arg1 arg2 arg3 '##' arg4 arg5 arg6
プログラムでは、同じように、これらの入力の両方が表示されます - 引数が##
になります。
それは '\#\#'や ''##''で動作しますが、私はそれを使わなければなりません。 –
'# 'をコメントとして解釈しないようにするには、別のシェルが必要です。 – thesun
あなたのプログラムはどこですか? – mrid
あなたはどのコマンドシェルを使用していますか? – DodgyCodeException