2011-03-08 7 views
4

나는 bash 스크립트에서 Ruby 스크립트를 호출하려고하는데, 행운은 없다. 잘Ruby : bash 스크립트에서 스크립트를 실행 하시겠습니까?

#!/bin/bash 
ruby -v 

작품, 그래서 나는 루비 아니라고 알고 있지만

#!/bin/bash 
ruby bash_test.rb 

하지 않습니다. 다음은 재미있는 부분입니다.

[email protected]:~/Desktop$ bash ubuntu_cmds.sh 
(LoadError)h file or directory -- bash_test.rb 
[email protected]:~/Desktop$ ls *.rb 
bash_test.rb 

두 파일 모두 내 바탕 화면에 있습니다.

ruby bash_test.rb 

도 잘 작동합니다.

나는 bash 스크립팅을 처음 사용하기 때문에 나는 단지 바보 같은 오류를 범하고 있다고 확신한다.

Ruby 1.8.7을 사용하여 Ubuntu 10.10을 실행하고 있습니다. 도움이나 조언을 미리 보내 주셔서 감사합니다.

EDIT : .sh와 .rb를 삭제하고 처음부터 시작하여 chmod +x .sh로 만들고 첫 번째 시도에서 작동했습니다. 나는 이유를 모른다. 그래도 도움을 주셔서 감사합니다.

+0

제 편집을 참조하십시오. 코드 블록을 포맷하는 가장 좋은 방법은 4 개의 공백으로 들여 쓰거나 그들을 선택하고'{}'버튼을 누르는 것입니다. – meagar

+0

아, 고마워 ... 훨씬 더 좋네. 감사합니다. – eckza

+1

키보드의'{} '버튼을 찾는 사람들을 위해 @ meagar는 질문 편집기 위의 아이콘을 참조합니다. –

답변

3

을 사용하면 파일 이름 뒤에 bash는 스크립트에 캐리지 리턴이 있습니까 시도?


은 파일 이름이 bash는 스크립트에서 루비로 전달되는 방식

더블 체크를 편집했다. 파일이 당신이의 한 부분으로 루비에 의해 추정되고 캐리지 리턴이 나타납니다 오류로 표시되는 바로는

 
ruby: No such file or directory -- bash_test.rb (LoadError) 

를 찾지 못한 경우

오류 출력은 다음과 같이해야한다 filename 그러면 다음과 같은 오류 출력이 나타납니다.

 
(LoadError)h file or directory -- bash_test.rb 
+0

나는 그것을 사용해 보았다. 아직 아무것도하지 않았다. – eckza

+1

@kivetros : "할 일"이 아니라 "할 일"입니다. 스크립트에 대해'dos2unix'를 실행하십시오. –

+0

나는 스크립트와 .rb를 모두 지우고 끝내기 시작했다. 신비스럽게도, 처음 시도 할 때도 잘 동작했다. dos2unix는 정말로 멋지다. - 그것에 대한 헤드 업에 감사드립니다. – eckza

3

#!/bin/bash 
ruby ~/Desktop/bash_test.rb 
+0

'(LoadError) h 파일 또는 디렉토리 -/home/john/Desktop/bash_test.rb' : P 이미 시도한 것을 언급 했어야합니다. – eckza

3

때때로 .$PATH에없는 것처럼 당신은 ruby ./bash_test.rb을 할 수 있습니다.

관련 문제