2017-10-14 12 views
0

REPL (jshell)에서 Java 명령을 실행하지 않고 인라인 명령으로 실행할 수있는 방법이 있습니까?쉘 또는 창에서 인라인으로 java jshell 명령을 실행하는 방법 commandLine

예 : 펄 인라인 명령

$perl -e 'printf("%06d", 19)' 
000019 

나는 어떤 명령을 실행하는 jshell 시작해야 :

$jshell 
| Welcome to JShell -- Version 9 
| For an introduction type: /help intro 
jshell> String.format("%06d", 19) 
$1 ==> "000019" 

내가 비슷한 질문 here 발견을하지만, 개별 명령에 대한 별도의 jsh 파일을 만들 수있는 실현 가능한 해결책이 아니다 .

같은 게시물에 또 다른 해결책은 다음과 같습니다 echo "1+2"|jshell

temp=`echo 'String.format("%06d", 19)'|jshell` 
echo $temp 

아야 출력 난 단지 000019를 인쇄 $temp을 기대하고

| Welcome to JShell -- Version 9 | For an introduction type: /help intro jshell> String.format("%06d", 19) $1 ==> "000019" jshell> 

.

+0

가능한 중복 제외를 [A JShell를 실행하는 방법 파일?] (https://stackoverflow.com/questions/46426526/how-to-run-a-jshell-file) – nullpointer

+0

제안 해 주셔서 감사합니다. 제안 된 게시물을 확인했지만 개별 명령에 대해 별도의 파일을 만들 수는 없습니다. 하나는'n' 개의 명령을 다른 장소에서 실행할 수 있습니다. –

+0

같은 게시물에 [답변 중 하나] (https://stackoverflow.com/a/46426620/1746118)는 'echo'를 사용하고 스크립트를 요구하지 않습니다. 너 그거 해봤 니? * 다른 장소에서 실행 명령 * 여기에 다른 장소는 무엇을 의미합니까? – nullpointer

답변

1

JShell과의 상호 작용에서 기본적으로 normal 피드백 모드가 사용되며이 모드는 명령 출력, 선언, 명령 및 프롬프트를 인쇄합니다. 자세한 내용은 Introduction to jshell feedback modes을 참조하십시오. ,

  1. 실행 jshell 피드백 모드 concise의 명령과 선언 세부 사항을 생략하는 여전히 신속하고 값을 출력 할 것이다 :

    단계 명령 출력을 얻을 수 있습니다. sed 사용 결과에서

    $ echo 'String.format("%06d", 19)' | jshell --feedback concise 
        jshell> String.format("%06d", 19) 
        $1 ==> "000019" 
    
  2. 필터 2 행 -

    echo 'String.format("%06d", 19)' | jshell --feedback concise | sed -n '2p' 
    
  3. 추출에만 가치와 다른 세부 정보 -

    echo 'String.format("%06d", 19)' | jshell --feedback concise | sed -n '2p' |sed -En 's/[^>]*>(.+)/\1/gp'