jshell命令`/ open`可以相对于包含脚本的文件夹而不是工作目录吗?
我有两个jshell脚本script.jsh和commons.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
,我跑jshell ../script.jsh
,它与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
好吧,我一直在寻找到这一个相当长的一段时间......
而且我知道的唯一途径是刚刚加入完整路径“commons.jsh” -file的 。 它的工作原理。
不完全,完整的路径不是相对的,但至少这回答了这个问题。 – Oleg
想一想这一段时间,并将其限制于此评论。恕我直言,用例归结为交互式Shell [(!= REPL)]的需求(https://www.johndcook.com/blog/2012/06/26/shell-repl/)。使用X脚本的特定位置从Y位置执行的主要区别。不否认这样的事实,即这种用户输入可以被支持,但是需要对[REPL来提供]进行评估(https://softwareengineering.stackexchange.com/questions/168285/difference-between-a-repl-and -interactive - 壳)。然而,可能会发生什么工作是使用'.sh'脚本包装'.jsh'。 – nullpointer