0

Ruby で以下のようなコード行を使用して、スクリプトを次のような出力ファイルに実行するときにログ ファイルを書き込みます。

system("ruby #{file} > #{file}.out")

ただし、新しいフォルダーを作成し、出力ファイルをこのフォルダーの下に置くことを期待して、次の方法で試しました。

Dir::mkdir(directory_name)
system("ruby #{file} > directory_name/#{file}.out")

ただし、フォルダ「directory_name」の下に出力ファイルが置かれているのを確認できません。誰か教えてください。本当にありがとう。

4

2 に答える 2

0

directory_name変数はありますか?その場合、2行目に書き込む必要がありますか#{directory_name}?それともディレクトリの名前ですか?その場合は最初の行で引用する必要がありますか?

于 2012-12-29T17:07:37.233 に答える
0

systemコマンドが独自のシェルで実行されるため、このような問題が発生する可能性があります。そのため、作業ディレクトリは、作成したディレクトリのコンテキストにない可能性があります。

一般に、できれば UNIX 戦略を混ぜないほうがよいでしょう。

system("cd #{File.expand_path(directory_name)} && ruby #{file} > #{directory_name}/#{file}.out")
于 2012-12-29T17:20:32.763 に答える