From: x1 Date: 2006-08-11T09:51:20+09:00 Subject: Re: access built-in shell commands like 'history' or 'fc' # if HISTFILE is in rbconfig ruby -e 'IO.read(ENV["HISTFILE"]).split.each {|i| puts i}' # else ruby -e 'IO.read(ENV["HOME"] + "/.bash_history").split.each {|i| puts i}' On 8/10/06, Robert Klemme wrote: > On 09.08.2006 21:51, bwv549 wrote: > >> Could it be that Ruby is using a different shell than you are used to? > >> I think it uses /bin/sh by default (not sure). > > > > Perhaps that is part of it. However, on this suggestion, I entered the > > suggested shell (/bin/sh). However, the behavior hasn't changed, > > although the 'history' command works fine in this shell. > > > > Just for reference, this is what I get when checking what this shell > > is: > > > > % /bin/sh --version > > GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu) > > Copyright (C) 2005 Free Software Foundation, Inc. > > > > I'm on Ubuntu 6.X, just for reference. > > There is really no point in accessing the history of the shell because > what you likely want is the history of the *invoking* shell, i.e. the > one that started your ruby interpreter. AFAIK there is no way to access > that history. If you want to work with that you can do this at the > shell prompt. > > history | ruby -e '...' > > Your example with "pwd" worked because "pwd" is also an external program > (try it out with "type -a pwd"). But you can access PWD much easier > from inside Ruby: > > 12:03:59 [~]: ruby -e 'puts Dir.pwd, ENV["PWD"]' > /cygdrive/w > /cygdrive/w > > Kind regards > > robert > >