Ruby exec缓存python脚本响应

时间:2018-02-02 19:28:37

标签: python ruby exec

我使用exec从Ruby执行Python,如下所示:

红宝石

array = ['first string', 'second string']
array.each { |s| 
  result = exec("python print_string.py -s '#{s}'")
  puts result
}

的Python

import argparse

parser = argparse.ArgumentParser(description='Print string app')
parser.add_argument('-s', '--strg', type=str, help='shows string')
args = parser.parse_args()

print(args.strg)

2个问题:

  • 输出只是“第一个字符串”,而“第二个字符串”从未得到 打印。
  • 将“first string”更改为其他任何内容并重新运行ruby 脚本仍然产生“第一个字符串”

1 个答案:

答案 0 :(得分:2)

你做错了。 exec的文档,强调我的:

  

通过运行给定的外部命令替换当前进程 ...

您想要system,它只是将命令作为子进程运行。