System() and changing (path-)environment

Hi!

I want to replace some shellscripts using ruby and therefore I need a
method to execute external scripts (ksh). Without rewriting a lot of
scripts, I need the possibility to execute external scripts in another
directory (as the ruby-script) but within their directory context:

path1 -> rubyscript.rb
module.rb

path2 -> shellscript.ksh
anotherscript.ksh
path3 -> last_script.ksh
found_another_one.pl

shellscript.ksh calls the other scripts using relative path statements
but when I use system(“path2/shellscript.ksh”), shellscript.ksh is
started with the rubyscript.rb-directory context and within
shellscript.ksh, the call of “./anotherscript.ksh” or
“path3/last_script.ksh” results in “script not found here you fool!”.

I tried some things like
system(“cd path2; shellscript.ksh”)
system(“ENVIRONMENTVARIABLE=something shellscript.ksh”)
but none of them worked out.

What do you suggest?

Hi…

Karl V. [email protected] writes:

[…]

shellscript.ksh calls the other scripts using relative path
statements but when I use system(“path2/shellscript.ksh”),
shellscript.ksh is started with the rubyscript.rb-directory context
and within shellscript.ksh, the call of “./anotherscript.ksh” or
“path3/last_script.ksh” results in “script not found here you
fool!”.

[…]

What do you suggest?

Try Dir.chdir(path) prior to the system calls, maybe?

Jim

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs