我希望能够通过命令行为我的pinger程序提供反馈并使用ps ax查看。我在SO q中找到了一些信息,但是...
....
ARGV[0] = "Hello!" # does nothing
我通过ruby ./pinger
启动脚本
....
ARGV[0] = "Hello!" # does nothing
我通过ruby ./pinger
启动脚本
建议改为将值分配给$0
。例如,如果我启动irb
并且
$ ps | egrep 'irb|pancakes'
3119 ttys000 0:01.02 irb
3131 ttys001 0:00.00 egrep irb|pancakes
然后在 irb
中执行以下操作:
>> $0 = 'pancakes'
回到另一个终端:
$ ps | egrep 'irb|pancakes'
3119 ttys000 0:01.07 pancakes
3135 ttys001 0:00.00 egrep irb|pancakes
#!/usr/bin/env ruby
$0 = 'pancakes'
sleep 10
运行该命令,跳转到另一个终端,执行 ps | grep pancakes
命令,您应该能够看到一个名为“pancakes”的进程。
$0
,这是Ruby中等同于C语言的argv[0]
的变量。而Ruby的ARGV
则只是保存了传入的参数。 - mu is too short$0
的东西可能是从Perl继承来的(http://perldoc.perl.org/perlvar.html#%24PROGRAM_NAME)。 - mu is too short