Forum: Ruby Difficulty accessing command line function return value (Hadoop FS shell)

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
33831a727248ae208be8a33df176e4cc?d=identicon&s=25 S D (Guest)
on 2009-02-16 19:12
(Received via mailing list)
I'm attempting to use Hadoop FS shell (
http://hadoop.apache.org/core/docs/current/hdfs_shell.html) within a
ruby
script. My challenge is that I'm unable to get the function return value
of
the commands I'm invoking. As an example Hadoop FS shell command, I try
to
run get (http://hadoop.apache.org/core/docs/current/hdfs_sh...)
as
follows

hadoop fs -get /user/hadoop/testFile.txt .

This should copy the file testFile.txt to my local directory. From the
command line this generally works but I need to be able to verify that
it is
working in my ruby script. The command should return 0 on success and -1
on
error. Based on

http://pasadenarb.com/2007/03/ruby-shell-commands.html

I have assumed that I should use backticks to make the hadoop call and
get
the return value. Here is a dialogue within irb in which the command was
not
successful:

irb(main):001:0> `hadoop dfs -get testFile.txt .`
get: null
=> ""

and a dialogue within irb in which the command was successful

irb(main):010:0> `hadoop dfs -get testFile.txt .`
=> ""

In both cases, neither a 0 nor a 1 appeared as a return value; indeed
nothing was returned. I'm considering posting this as a bug on the
Hadoop
site but I want to make sure that I'm not doing something wrong from a
Ruby
point of view.

Your help is appreciated.

Thanks,
John
This topic is locked and can not be replied to.