Мне больше нравится ответ НикаМервина, потому что он не зависит от внутренней реализации Rake (например, от глобальной переменной Rake).
Это даже лучше - регулярное выражение не требуется
File.split($0).last == 'rake'
File.split () необходим, потому что кто-то может запустить rake
с его полным путем, например ::100100
/usr/local/bin/rake taskname