在ruby中设置环境变量并将其传递给shell

时间:2017-07-16 05:48:40

标签: ruby bash sinatra

我正在运行一个sinatra网络应用程序,它从用户那里获取文件(上传)。然后它通过scp将文件传输到服务器。我可以从params Hash中获取文件名并将其设置为环境变量并将其传递给scp命令。下面是我的代码片段。

ENV[file] = params['arne_site_file'][:filename]
transfer = `scp -i /opt/zabbix-proxy/etc/.ssh/id_rsa $file zabbix@X.X.X.X:/home/zabbix/ARNE_5216_files`

Params Hash是 -

{
"arne_site_file" => {
    :filename => "ARNE_SITE__BB5216_L16B_936441_HWY_54_A.xml"
},
        "submit" => "Validate File"
 }

1 个答案:

答案 0 :(得分:1)

找到解决方案。事实证明我缺少引号。 ENV [' file'] = params [' arne_site_file'] [:filename]。这解决了这个问题。很高兴知道可以通过Ruby设置env变量来访问其他bash脚本。