その値は、コマンドラインオプションで設定されているのに、なぜIGNORECASEのawkの変数は正しく動作しませんか?

Jdamian:

私はそれが実現しawk -v IGNORECASE=0たときに、それはいけないケースを無視しています。

ps -ef | awk -v IGNORECASE=0 '/INIT/'
root          1      0  0  2019 ?        00:03:07 /sbin/init
root      65327  25751  0 08:26 pts/0    00:00:00 awk -v IGNORECASE=0 /INIT/

しかし、awk 'BEGIN { IGNORECASE=0 }'予想通りのケースを無視していません。

ps -ef | awk  'BEGIN { IGNORECASE=0 } /INIT/'
root      66290  25751  0 08:27 pts/0    00:00:00 awk BEGIN { IGNORECASE=0 } /INIT/

どうして?私は何をしないのですか?それはバグですか?

PD:GNU Awkの3.1.7

それら:

gawkの変更履歴で発見:

2015年2月5日アンドリューJ.スコル

  • eval.c(set_IGNORECASE):IGNORECASEが数値を持っている場合は、それを文字列として処理する前にいることを利用してみてください。この修正は、コマンドラインで-v IGNORECASE = 0を設定する問題は、正常に動作していませんでした。

バグが確認されました。あなたは何が不足していません。

うまくいけば、あなたは、最新のバージョンにアップグレードすることができます。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=6863&siteId=1