ディレクティブを使用するときにフラグ値にスペースを入れるにはどうすればよいですか?
環境
パッケージは、flag
Go の呼び出し方法に応じて、スペースを含むフラグを異なる方法で受け取り、処理します。フラグ値の引用はコマンドラインからは機能しますが、たとえば などのディレクティブでは機能しませんgo generate
。
つまり、コマンド ラインから呼び出されるとFlag1
、正しい値 (つまり、4 ワード、3 スペース) が返されます。
作品
% go run -tags generate main.go -Flag1="flag value with spaces"
動作しません
ただし、ディレクティブ ファイルでまったく同じコマンドを呼び出すと (たとえば、 を使用go generate ./...
)、Flag1
正しい値が返されません。次の行を含むディレクティブ ファイル (例: generate.go
) を取得します。
//go:generate go run -tags generate main.go -Flag1="flag value with spaces" -Flag2=next
Flag1
正しくFlag2
設定されておらず、まったく設定されていません。