2017-04-15 70 views
1

可能是一個幼稚的問題,使用System.cmd/3藥劑

我在紅寶石

system(ansible-playbook -i #{ip_address}, #{file_to_run}") 
system(sudo chmod -R ugo+rw /etc/ansible) 

試圖用/ 3

System.cmd("sudo chmod -R ugo+rw /etc/ansible",[],[]) 
System.cmd的變化來重現此得到這個

獲得一個

(ErlangError) erlang error: :enoent 

P租賃我該如何糾正?

回答

4

每個參數的命令必須作爲作爲第二個參數列表中單獨字符串System.cmd/3

System.cmd("sudo", ["chmod", "-R", "ugo+rw", "/etc/ansible"]) 

如果所有的參數是文本字符串,其中沒有包含空格,你也可以使用~w印記:

System.cmd("sudo", ~w(chmod -R ugo+rw /etc/ansible)) 

由於System.cmd/3有第三個參數的默認值,你可以像我上面做了省略。