Erlang中執行linux命令的方法
你還在為不知道Erlang中執行linux命令的方法而煩惱么?接下來是小編為大家收集的Erlang中執行linux命令的方法,希望能幫到大家。
Erlang中執行linux命令的方法
os.cmd(Cmd)
os模塊提供了cmd函數可以執行linux系統shell命令(也可以執行windows命令)。返回一個Cmd命令的標準輸出字符串結果。例如在linux系統中執行os:cmd("date"). 返回linux的時間。 這種比較簡單,一般情況下,也滿足了大部分需求。
erlang:open_port(PortName, PortSettings)
當os.cmd(Cmd) 滿足不了你的需求的時候,就可以用強大的open_port(PortName, PortSettings) 來解決了。最簡單的需求,我要執行一個linux命令,而且還需要返回退出碼。os.cmd(Cmd) 就有些捉急了。也不要以為有了open_port(PortName, PortSettings) 就可以完全替代os.com(Cmd) 了。強大是需要代價的。
%% 優點:可以返回exit status 和執行過程
%% 缺點: 非常影響性能, open_port執行的時候,beam.smp會阻塞
當對本身系統的性能要求比較高的時候,不建議使用erlang:open_port(PortName, PortSettings) .
下面是一段很好用的代碼,返回exit status 和執行結果。
看了“Erlang中執行linux命令的方法”還想看:
Erlang中執行linux命令的方法





下一篇:linux命令大全