繁体   English   中英

设置exec生成的搜索路径并在ruby中弹出

set search path for exec spawn and popen in ruby

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

假设有可执行文件/ path / to / hello。 我想做这个

set-search-path "/path/to:/another/path:/usr/bin:/bin"
IO.popen({},[["hello","argv0"],"argv1"])

我知道我们可以为“ hello”指定完整路径,但是如果可能的话,更希望看到带有搜索路径的解决方案。

在我寻找Ruby解释器之前也要设置路径。

我猜想这涉及设置ruby本身的环境,因此也许可以对setenv(3)c库函数进行包装。

还请指出如果我使用popen的另一种方法,将字符串传递给shell,该怎么办。

我目前正在运行ruby2.1。

1 个回复

您可以这样做:

paths = "/path/to:/another/path:/usr/bin:/bin"
paths.split(':').each{|path|
  if File.exist?(path)
    IO.popen(...)
    break
  end
end

还请指出如果我使用popen的另一种方法,将字符串传递给shell,该怎么办。

popen方法可以接受环境哈希,例如:

IO.popen({'PATH' => '/path/to:/another/path:/usr/bin:/bin'}, cmd)
1 Ruby popen和可执行路径?

执行IO.popen或exec ,Ruby从哪里获取默认的PATH变量? 例如在zsh中: 在irb中确认ENV['PATH'] : 但不是popen : 更新 : 我已经尝试过使用OSX Yosemite(10.10)分发的ruby以及使用ruby-inst ...

2 Ruby - 如何使用路径中的空格执行 IO.popen

我正在尝试在 Windows 上运行以下代码: 我不断收到错误: 我对 Ruby 不是很熟悉,所以当我在文件路径中有空格时,有人可以帮助我如何使用 IO.popen。 或者类似于 IO.popen 的不同功能。 谢谢 ...

3 exec和popen之间的区别

我想在我的服务器上运行外部PHP文件我发现我可以使用exec或popen 。 我读到popen用于Windows,而exec用于Linux。 另一方面,我看到了popen也可用于Linux的示例。 我还是个新手。 可能吗? 如果exec和popen工作,你推荐哪种Linux? ...

2014-08-21 10:53:27 3 3317   php/ linux
4 如何将 exec 转换为 spawn?

我使用带有以下代码的exec来执行带有 NPM 的脚本,并且运行良好。 然后我开始收到此错误: RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: 超出标准输出 maxBuffer 长度 所以我认为缓冲区是一个问题,并将其更改为: 哪个更 ...

7 Ruby Fiddle dll搜索路径

我正在尝试使用以下小提琴代码加载一个DLL :(如果有一个更简单的方法来加载一个DLL并调用一个函数,它将解决我的问题,我很高兴听到它) dlload "C:/Folder/Foo.dll"就像我想要的那样工作。 但问题是Foo.dll是一个c ++ dll,需要在不同位置使用其他几个 ...

8 Windows上的PHP中的异步popen exec

我有一个奇怪的问题。 我最近在我们的测试服务器上设置了一个进程,以便从另一个脚本异步调用脚本。 直到最近,它一直在测试期间工作。 在继续之前,让我先介绍一些技术细节。 来自原始脚本的调用看起来像这样(我更新了调用的逻辑): exec('cmd /S /C "'.$command.' ...

9 popen和exec python之间的区别

任何人都可以解释Python中Popen和exec之间的区别 我能够完成相同的任务,使用exec和Popen动态执行程序。 这里的代码使用EXEC方法但是如果我使用Popen方法会发生什么。 code1.py code2.py ...

2012-10-26 12:45:53 1 802   python
10 与Popen在Python中的docker exec命令

我正在开发一个与docker容器交互的应用程序。 我想在docker exec name_of_container命令中执行此命令: command= "/usr/bin/balance -b "+ ip_address + " 5001 " + servers_list 我们的想法 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM