小编Sea*_*ski的帖子

字符集特殊字符

  • iso-8859-1是utf-8的合适子集吗?
  • 那么iso-8859-n怎么样?
  • 那么windows-1252呢?

如果上述任何一个答案都是否定的,那么不相交的字符是什么?我正在测试一些检测字符集的逻辑,并希望编写测试来验证检测是否正常工作.

utf-8 iso-8859-1 windows-1252 iso-8859-2

6
推荐指数
1
解决办法
5045
查看次数

无法在ruby中执行RVM shell命令

长时间潜伏,第一次海报!

目标

我的最终目标是制作一个Rake设置脚本来设置我的rvm环境(我需要动态创建gemsets,为这些gemsets安装gem,并在这些gemsets中运行ruby脚本).

问题

我需要在我正在执行rvm命令的shell中设置rvm.基本思想是获取此处概述的rvm脚本.

当我在ruby中执行shell命令时尝试获取rvm脚本时出现问题.有充分证据表明rvm只支持bash,但ruby在执行shell命令时似乎没有使用bash.

我试过的

我已经尝试了所有方法来执行这里列出的shell命令无济于事.为简单起见,我将使用下面的'exec'方法.

似乎虽然ruby认为它使用bash shell来执行这些命令......但事实并非如此.注意!

exec 'echo $SHELL'
=> /bin/bash
Run Code Online (Sandbox Code Playgroud)

exec 'source ~/.rvm/scripts/rvm; type rvm | head -1;'
=> sh: source: not found
=> rvm is ~/.rvm/bin/rvm
Run Code Online (Sandbox Code Playgroud)

这告诉我ruby实际上正在使用/ bin/sh not/bin/bash(该输出应该返回rvm is a function).我甚至打印了ruby env的东西,ENV [SHELL]是'/ bin/bash'

'蛮力'解决方案

我确实有一个解决方法,但它真的很笨拙(这需要我'和'所有的命令在一起):

exec 'echo \'source ~/.rvm/scripts/rvm && type rvm | head -1\' | /bin/bash'
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想避免使用shell脚本 - 我可以在ruby中实现这一点似乎是合理的.

ruby shell rvm

2
推荐指数
1
解决办法
2374
查看次数

标签 统计

iso-8859-1 ×1

iso-8859-2 ×1

ruby ×1

rvm ×1

shell ×1

utf-8 ×1

windows-1252 ×1