2017-04-15 71 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有第三个参数的默认值,你可以像我上面做了省略。