쉘 계층 구조의 CTRL C 동작

쉘 계층 구조의 CTRL C 동작

bash처럼 쉘을 엽니다 sbt. node debug그런 다음 이 셸 내에서 다른 셸을 엽니다( 각각 scala또는 사용 node repl). 이제 마지막 셸을 닫고 처음 열었던 셸(예: )로 돌아가고 싶지만 +를 sbt사용하면 모든 셸 계층 구조가 닫히고 원래 bash 터미널로 돌아갑니다.CTRLC

내가 아는 한여기, 이런 종류의 행동은 표준이 아니며 나에게 권장되지 않습니다.

편집하다: 나는 이것을 알아 내려고 노력 중이므로 실제로 문제는 node debugand와 관련이 없습니다. 나는 내 bash의 일반적인 비표준 동작을 보여주는 실험을 실행했습니다. Windows에서 비슷한 문제를 발견했습니다.sbtscala여기, 하지만 저는 Ubuntu 14.04를 사용하고 있습니다

답변1

명령을 입력하면 exit의 중첩이 quit종료됩니다 . 다음과 같이 이러한 명령을 축약할 수도 있습니다.consolesbt

scala> :q
Not interrupting system thread Thread[process reaper,10,system]

[success] Total time: 138 s, completed May 25, 2014 1:33:22 PM
> 

또는 :e이 정보는 도움말 페이지에 포함되어 있습니다 console.

scala> :help
All commands can be abbreviated, e.g. :he instead of :help.
Those marked with a * have more detailed help, e.g. :help imports.

:cp <path>                 add a jar or directory to the classpath
:help [command]            print this summary or command-specific help
:history [num]             show the history (optional num is commands to show)
:h? <string>               search the history
:imports [name name ...]   show import history, identifying sources of names
:implicits [-v]            show the implicits in scope
:javap <path|class>        disassemble a file or class name
:load <path>               load and interpret a Scala file
:paste                     enter paste mode: all input up to ctrl-D compiled together
:power                     enable power user mode
:quit                      exit the interpreter
:replay                    reset execution and replay all previous commands
:reset                     reset the repl to its initial state, forgetting all session entries
:sh <command line>         run a shell command (result is implicitly => List[String])
:silent                    disable/enable automatic printing of results
:type [-v] <expr>          display the type of an expression without evaluating it
:warnings                  show the suppressed warnings from the most recent line which had any

scala> 

콘솔의 키보드 단축키?

당신이 정말로 원하는 것은 사용할 수 있는 키보드 단축키(있는 경우)를 찾는 것입니다 console. 이를 위해 이 기사에서는 사용할 수 있는 것이 거의 없음을 나타내는 것 같습니다.

스칼라 인터프리터의 단축키는 ctl+a, ctl+e, ctl+f, ctl+b만 지원하고 코드 자동 완성(예: f#)은 물론 탭 키도 지원되지 않는 것으로 나타났습니다.

원천: 주제: 스칼라 인터프리터 콘솔 키보드 단축키 및 코드 자동 완성? - 메시지 #00309

REPL은 어떻습니까?

이 SO Q&A 제목에 따르면:Scala의 REPL에서 정방향 삭제를 위해 ctrl-d를 사용할 수 있는 방법이 있습니까?Scala 2.9 REPL을 통해 기본 키 바인딩을 사용할 수 있습니다 :keybindings.

다음과 같이 사용자 정의 키 바인딩으로 키 바인딩을 재정의할 수도 있습니다.

$ scala -Djline.keybindings=/path/to/keybindings.properties

자세한 내용은 위에 언급된 SO Q&A를 참조하세요.

답변2

명령줄에 다음을 입력하면 kill -l존재하는 다양한 인터럽트를 모두 볼 수 있습니다. 모든 인터럽트를 사용자가 구성할 수 있는 것은 아닙니다.

stty귀하의 작업(인터럽트)은 키( Ctrlc, 등) Ctrl\를 사용하여 설정됩니다 .Ctrlz

stty intr ^C키는 예상대로 설정됩니다 Ctrlc.

또 다른 흥미로운 기능은 트래핑입니다.

다음을 사용하면 trap 'echo tried it' 2인터럽트를 잡아서 다음으로 대체합니다.echo tried it

이는 쉘 스크립트가 명령줄에서 종료되는 것을 방지하는 좋은 방법입니다.

관련 정보