2017-04-15 1 views
1

아마 순진한 질문,는 System.cmd/3 비약에

나는 System.cmd의 차이/3

System.cmd("sudo chmod -R ugo+rw /etc/ansible",[],[]) 
와 함께이 재현하려고

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

루비이있어 사용

(ErlangError) erlang error: :enoent 

P 얻기

임대 나는 어떻게 이것을 정정해야합니까?

답변

4

명령에 대한 각 인수는 System.cmd/3에 두 번째 인수로 전달 된 목록에 별도의 문자열로 제공해야합니다 :

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

모든 인수가 리터럴 문자열과 그들 중 누구도 당신은 또한 할 수있는 공간을 포함 인 경우

~w 인장을 사용 : 내가 위에서 할 것 같은 System.cmd/3 이후

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

세 번째 인수에 대한 기본 값을 가지고, 당신은 그것을 생략 할 수 있습니다.