如何在Elixir中获取当前操作系统名称?
在Ruby中,我会使用如何在Elixir中获取当前操作系统名称?,elixir,Elixir,在Ruby中,我会使用Ruby_PLATFORM常量来确定我的程序运行在什么操作系统(Mac、Windows、Linux等)上。长生不老药有办法得到这些信息吗 我目前正试图重新创建一个我用Elixir编写的Ruby程序,我有一个方法,可以通过一个依赖于操作系统的系统调用来打开一个文档。该方法类似于: def self.open_document(filename) case RUBY_PLATFORM when %r(darwin) system('open', filename
Ruby_PLATFORM
常量来确定我的程序运行在什么操作系统(Mac、Windows、Linux等)上。长生不老药有办法得到这些信息吗
我目前正试图重新创建一个我用Elixir编写的Ruby程序,我有一个方法,可以通过一个依赖于操作系统的系统调用来打开一个文档。该方法类似于:
def self.open_document(filename)
case RUBY_PLATFORM
when %r(darwin)
system('open', filename)
when %r(linux)
system('xdg-open', filename)
when %r(windows)
system('cmd', '/c', "\"start #{filename}\"")
else
puts "Don't know how to open file"
end
end
我知道我可以使用Elixir运行Ruby命令,但我不确定如何获得Ruby\u PLATFORM
值,从而在case
语句中打开开关,或者我是否真的可以获得该信息。这可能吗
更新
根据并供进一步参考:
iex> :os.type
{:unix, :darwin}
iex> System.cmd("uname", ["-s"])
{"Darwin\n", 0}
您可以调用Erlang以获取平台名称信息:
类型:
Osfamily = unix | win32
Osname = atom()
返回当前对象的Osfamily,在某些情况下还返回Osname
操作系统
在Unix上,Osname将具有与uname-s
返回值相同的值,但在
小写。例如,在Solaris 1和2上,它将是sunos
在Windows中,Osname将是nt
(在Windows nt上)或Windows
(在Windows 95上)
在长生不老药中,你可能需要打电话
:os.type()
使用
Osfamily
作为:unix
或:win32
引用该函数。非常感谢!
:os.type()