可以删除ruby中的命令行参数吗?

时间:2013-04-04 03:40:08

标签: ruby unix argv

出于安全考虑,我想在解析它们之后删除命令行参数:

login.rb --user me --password wombats

我已经尝试过ARGV.clear和$ *。清除

对ARGV或$ *的更改都反映在ps

1 个答案:

答案 0 :(得分:2)

您可以通过更改ps(1)变量来更改Ruby进程的名称(如$PROGRAM_NAME所示)。这是一个故意循环的示例程序,例如:

#!/usr/bin/env ruby

puts $PROGRAM_NAME
$PROGRAM_NAME = "a ruby process"

loop { }

当它像这样运行时:

$ ./loop.rb password
./loop.rb

它在ps中显示了“红宝石过程”:

$ ps aux | grep ruby
stuart         85292  98.9  0.1  2439468   4340 s004  R+    8:43PM   0:02.96 a ruby process  
stuart         85341   0.0  0.0  2432768    600 s011  S+    8:43PM   0:00.00 grep --color ruby

因此,您可以使用$PROGRAM_NAME变量通过ps准确更改流程的显示方式。