2017-10-15 27 views
3

나는 두 개의 jshell 스크립트 script.jshcommons.jsh을 동일한 폴더 /path/folder에 가지고 있습니다.jshell 명령`/ open`은 작업 디렉토리 대신 스크립트가있는 폴더에 상대적으로 작동 할 수 있습니까?

script.jsh :

/open commons.jsh 

commons.jsh :

System.out.println("commons.jsh loaded") 
  • 내가 /path/folder에서 오전, 난이 jshell script.jsh을 실행할 수 있으며 잘
  • 만약 작동 나는 /path/folder/subfolder에 있는데 나는 0을 돌린다.이면 File 'commons.jsh' for '/open' is not found으로 실패합니다.

이 문제가 해결 되었습니까? 즉, jshell 명령 /open은 작업 디렉토리 대신 스크립트가있는 폴더에 상대적으로 작동 할 수 있습니까?

비슷한 질문은 bash는 여기를 요청했다 : Bash: How _best_ to include other scripts?

EDIT1을 :

Edit2가 더 정확한 질문을 : 여기에 내가 작업 한 실제 jshell 스크립트는 이 질문을 쓸 때 첫 번째 스크립트는 여기 https://framagit.org/Gwendal/helpful-scripts/blob/3e8118970a6a412dfe0f199e93545745d890243f/jshell/dia2pdf.jsh 헬퍼 메서드가 포함 된 두 번째 스크립트를 엽니 다 https://framagit.org/Gwendal/helpful-scripts/blob/3e8118970a6a412dfe0f199e93545745d890243f/jshell/commons.jsh

,
+0

잠시 동안이 문제에 대해 생각해 보았습니다. IMHO, 유스 케이스는 Interactive Shell [(! = REPL)] (https://www.johndcook.com/blog/2012/06/26/shell-repl/)이 필요합니다. Y 위치에서 실행될 X 스크립트의 특정 위치 사용의 주요 차이점. 이러한 사용자 입력이 지원 될 수 있지만 REPL이이를 제공 할 수 있는지 평가해야합니다 (https://softwareengineering.stackexchange.com/questions/168285/difference-between-a-repland). -interactive-shell). 하지만 작동 할 수있는 것은'.sh' 스크립트 eq로'.jsh'를 싸는 것입니다. – nullpointer

답변

1

좋아 난 ... 꽤 오랫동안이 일에

을 찾고 있었어요 그리고 내가 아는 유일한 방법은 단지 전체 경로 "commons.jsh" - 파일의을 추가하는 것입니다 . 그리고 그것은 작동합니다.

+0

전체 경로는 상대 경로가 아니지만 최소한 질문에 대한 대답입니다. – Oleg