我在CentOS上运行ruby脚本,并通过rvm(1.9.3)安装ruby。
我在.bash_profile中设置了NLS_LANG变量。
[app@box stasis]$ echo $NLS_LANG
en_US.UTF-8
[app@box stasis]$ which ruby
~/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
但是当试图通过ruby(oci8驱动程序)访问它时,它无法找到它:
1.9.3-p194 :001 > ENV['NLS_LANG']
=> nil
访问其他变量似乎有效:
1.9.3-p194 :004 > ENV['USER']
=> "app"
我的脚本显示以下内容:Warning: NLS_LANG is not set. fallback to US7ASCII.
我正在从ruby脚本运行sqlplus(执行一些.sql文件),并且特殊字符都搞砸了。
如何让红宝石看到价值?
答案 0 :(得分:11)
您需要将变量导出为在任何运行的应用程序中可用(除非它们是函数):
export NLS_LANG
或与设置一起:
export NLS_LANG=en_US.UTF-8
或大多数系统LANG
应该可用:
export NLS_LANG=$LANG