Tag: bash

Ruby 1.8的Shellwords.shellescape实现

虽然1.8.7的构建我似乎有一个backported版本的Shellwords::shellescape ,但我知道这个方法是一个1.9function,并且在早期版本的1.8中肯定不支持。 有没有人知道我能找到哪里,无论是Gemforms还是仅作为一个片段,一个强大的独立实现Bourne-shell命令逃避Ruby?

ruby net-ssh登录shell

有什么办法可以使用net-ssh在ruby中获取登录shell吗? 这有可能吗? 通过登录shell我的意思是源/ etc / profile ..

脚本在命令行中成功执行,但不是作为cronjob执行

我有一个bash脚本运行一个ruby脚本来获取我的twitter提要。 ## /home/username/twittercron #!/bin/bash cd /home/username/twitter ruby twitter.rb friends 它在命令行中成功运行。 /home/username/twittercron 但是当我尝试将其作为cronjob运行时,它运行但无法获取提要。 ## crontab -e */15 * * * * * /home/username/twittercron 该脚本已经是chmod + x。 不知道为什么会这样。 有任何想法吗?

Git bash chcp windows7编码问题

伙计我如何在Git bash命令屏幕上更改编码? 我正在使用Windows 7,当我尝试安装任何Ruby gem时,我通常会遇到这个问题 $ gem install libv8 — –with-system-v8 ERROR: While executing gem … (ArgumentError) unknown encoding name – CP720 所以当我尝试使用命令chcp 1252它会给我错误 $ chcp 1252 sh.exe”: chcp: command not found 那我怎么能改变git bash命令屏幕上的编码?

从Ruby运行shell命令:在显示输出时捕获输出?

我有个问题。 我想从另一个ruby脚本运行ruby脚本并捕获它的输出信息,同时让它输出到屏幕。 跑步者 #!/usr/bin/env ruby print “Enter your password: ” password = gets.chomp puts “Here is your password: #{password}” 我运行的脚本文件: start.rb output = `runner` puts output.match(/Here is your (password: .*)/).captures[0].to_s 如你所见,这是一个问题。 在start.rb的第一行,屏幕为空。 我在跑步者中看不到“输入你的密码:”。 有没有办法在它完成之前显示转轮脚本的输出,并且仍然让我将它捕获到一个字符串,以便我可以处理信息,例如。 在这个例子中使用匹配?

使用rbenv安装Ruby的最新稳定版本

我想用rbenv安装最新的稳定版本的Ruby。 rbenv本身不会发生此function。 当我在shell中运行命令rbenv install -l时,我得到一长串可用版本。 该列表包含所有类型的条目。 以下是部分列表,以展示格式和多样性: $ rbenv install -l Available versions: 2.0.0-p643 2.0.0-p645 2.1.0-dev 2.1.0-preview1 2.1.0-preview2 2.1.0-rc1 2.1.4 2.1.5 2.1.6 2.2.0-dev 2.2.0-preview1 2.2.0-preview2 2.2.0-rc1 2.2.0 2.2.1 2.2.2 2.3.0-dev jruby-1.7.19 jruby-1.7.20 jruby-9.0.0.0-dev jruby-9.0.0.0+graal-dev jruby-9.0.0.0.pre1 jruby-9.0.0.0.pre2 maglev-1.0.0 maglev-1.1.0-dev maglev-2.0.0-dev mruby-dev mruby-1.0.0 mruby-1.1.0 rbx-2.5.2 rbx-2.5.3 ree-1.8.7-2011.12 ree-1.8.7-2012.01 ree-1.8.7-2012.02 topaz-dev 我的目标是在shell脚本中自动执行命令rbenv install VERSION ,其中VERSION是最高的xxx版本。 换句话说,我需要自动替换列表中以数字开头的最高条目,而不是以-something结尾进入VERSION 。 从这个列表中,我需要2.2.2 […]

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

好吧这让我抓狂: `ls #{“/media/music/Miles Davis”}` 由于“Miles”和“Davis”之间的空间而失败 假设我编写了一个ruby脚本,并且用户将文件路径作为参数传递。 如何将其转义并输入shell-out命令。 是的,是的,我知道,应该避免炮击。 但这是一个人为的例子,我仍然需要这个。 我会做system(“ls”, ARGV[0]) ,但它不会将ls的stdout输出作为字符串返回,这是反引号做得好的。 如何逃避在shellout中插入的内容?

将URL输出的JSON保存到文件中

如何将URL输出的JSON保存到文件中? 例如来自Twitter搜索API(此http://search.twitter.com/search.json?q=hi ) 语言并不重要。 编辑//我如何向EOF追加更新? 编辑2 //真的很棒的答案,但我接受了我认为最优雅的那个。

杰基尔 – 没找到命令

我想让Jekyll运行但我没有使用Ruby的经验。 据我所知,Jekyll的安装成功了。 然而: $ jekyll 给出错误: -bash: jekyll: command not found 这是gem env结果: – RUBYGEMS VERSION: 1.3.4 – RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin10.0] – INSTALLATION DIRECTORY: /Volumes/HDD/DADU/gems – RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby – EXECUTABLE DIRECTORY: /Volumes/HDD/DADU/gems/bin – RUBYGEMS PLATFORMS: – ruby – universal-darwin-10 – GEM PATHS: – /Volumes/HDD/DADU/gems – /Volumes/HDD/DADU/.gem/ruby/1.8 – /Library/Ruby/Gems/1.8 – /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 […]

-bash:/ usr / local / bin / heroku:/ usr / local / bin / ruby​​:bad interpreter:没有这样的文件或目录

每当我打开一个新的终端窗口时,我现在得到: -bash: /usr/local/bin/heroku: /usr/local/bin/ruby: bad interpreter: No such file or directory 任何关于为什么会发生这种情况以及如何摆脱它的想法?