jjzjj

language-shell

全部标签

ruby - 我如何指示 Capistrano 3 加载我在远程主机上设置的 shell 环境变量?

我想指示Capistrano加载在远程服务器上定义的环境变量。我该怎么做?似乎当我在.bashrc文件中导出我的环境变量时,Capistrano没有考虑它们。Capistrano似乎正在执行/usr/bin/env来创建执行远程命令的环境,但这似乎并没有从.bashrc加载环境变量。我还要告诉你,我也在使用rvm-capistrano(以防万一它可能有帮助)。有什么线索吗? 最佳答案 Capistrano实际上确实加载.bashrc。但在文件顶部附近,您会发现以下行之一:#Ifnotrunninginteractively,don'

ruby - 如何在 Ruby 中触发 shell 脚本并在后台(异步)运行?

我有一个名为test.sh的shell脚本。如何从Ruby触发test.sh?我希望test.sh作为后台进程运行,这在Ruby中意味着它是一个异步调用。STDERR和STDOUT也需要写入特定的文件。有什么想法吗? 最佳答案 @TanzeebKhalili的回答有效,但您可能会考虑Kernel.spawn(),它不等待进程返回:pid=spawn("./test.sh")Process.detach(pid)请注意,根据文档,无论您使用spawn()还是手动使用fork()和system(),您都应该在退出之前获取PID和Proc

ruby - 在 Ruby 中形成卫生 shell 命令或系统调用

我正在构建一个守护进程来帮助我管理我的服务器。Webmin工作正常,就像打开服务器的shell一样,但我更希望能够从我设计的UI控制服务器操作,并向最终用户公开一些功能。守护进程将从队列中获取Action并执行它们。但是,由于我将接受用户的输入,我想确保不允许他们将危险的东西注入(inject)到特权shell命令中。这里有一个片段可以说明我的问题:defperformsystem"usermod-p#{@options['shadow']}#{@options['username']}"end解释更多的要点:https://gist.github.com/773292我不确定典型的输

ruby - 为什么以及何时使用 shell 而不是 Ruby

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion因为我熟悉Ruby,所以我打算使用它在OSX上编写一些脚本。但后来我想,也许我错过了船。我知道有很多理由更喜欢Ruby而不是Bash(或任何与sh兼容的命令语言解释器),但我不知道有什么理由不这样做。直接对shell进行编程有什么好处?我打算在必要时使用system来利用系统命令。注意:我已经知道Ruby不会一直存在,但我主要对技术、语义和句法标准感兴趣。Ruby并不总是存在,我的意思是它

ruby - 将环境变量传递给 exec shell 命令的正确方法

这个问题在这里已经有了答案:Shelloutfromrubywhilesettinganenvironmentvariable(5个答案)关闭8年前。我正在使用ruby​​1.8.7补丁249。以下是将环境变量传递到我需要从我的ruby​​程序执行的shell命令的最佳/唯一方法吗?forkdoENV['A']='A'exec"/bin/bash-c'echo$A'"endProcess.wait

ruby-on-rails - 错误 : must be owner of language plpgsql

我正在使用PostgreSQLv9.0.1和Rails(它是deps)@v2.3.8,由于使用了postgres的全文能力,我有一个定义为的表:CREATETABLEaffiliate_products(idintegerNOTNULL,namecharactervarying(255),modelcharactervarying(255),descriptiontext,pricenumeric(9,2),created_attimestampwithouttimezone,updated_attimestampwithouttimezone,textsearch_vectortsv

Ruby 转义 ARGV 参数或字符串作为 shell 命令的参数

好吧,这让我发疯:`ls#{"/media/music/MilesDavis"}`由于“Miles”和“Davis”之间的空格而失败假设我编写了一个ruby​​脚本,用户将文件路径作为参数传递。我如何转义它并提供给shell-out命令。是的,是的,我知道,应该避免掏空。但这是一个人为的例子,我仍然需要这个。我会做system("ls",ARGV[0]),但它不会将ls的标准输出输出作为字符串返回,这正是反引号擅长的地方。如何转义你在shellout中插入的任何内容? 最佳答案 使用require'shellwords'和Shell

ruby-on-rails - 是否有适用于 Ruby 或 Rails 的类似 iPython 的 shell?

我喜欢iPython,并且正在学习RoR以及一些库(如Mechanize),我希望能够轻松地了解我正在使用的内省(introspection)方法。我希望能够输入“。”+TAB并查看。 最佳答案 有一个irb工具可以帮助自动完成require'irb/completion' 关于ruby-on-rails-是否有适用于Ruby或Rails的类似iPython的shell?,我们在StackOverflow上找到一个类似的问题: https://stackove

ruby - 如何编写启动 tmux session 的 shell 脚本,然后运行 ​​ruby​​ 脚本

我想编写一个执行此操作的shell脚本:首先,创建一个tmuxsession其次,在tmuxsession中运行名为“run.rb”的ruby​​脚本在伪代码中,我想做什么:tmuxnew-smy_sessionrubyrun.rb#NOTE:Iwantthistoruninsidethemy_sessiontmuxsession.tmuxdetach我该怎么做?(我阅读的帖子越多,它变得越困惑。) 最佳答案 #!/bin/bashtmuxnew-session-d-smy_session'rubyrun.rb'创建一个名为my_s

ruby - 如何用 Ruby 覆盖 shell 中的打印行?

我如何用Ruby覆盖之前在Unixshell中打印的行?假设我想每秒在shell上输出当前时间,但我不想将每个时间字符串都向下堆叠,而是想覆盖之前显示的时间。 最佳答案 您可以在行尾使用\r转义序列(下一行将覆盖这一行)。按照你的例子:require'time'loopdotime=Time.now.to_s+"\r"printtime$stdout.flushsleep1end 关于ruby-如何用Ruby覆盖shell中的打印行?,我们在StackOverflow上找到一个类似的问题