명령의 표준 입력으로 무언가를 보낸 다음 터미널에서 계속 읽을 수 있는지 궁금합니다.
제가 해결하려는 문제는 Node.js REPL을 열 때마다 일부 초기화 코드를 실행하는 것이므로 처음부터 REPL에서 일부 기능을 사용할 수 있습니다. 기본적으로 이를 자동화하려면 다음을 수행하십시오.
$ node
> require('./myutils')
> ... continue using the REPL
이제 다음과 같은 문자열을 사용하여 명령의 표준 입력에 일부 텍스트를 보낼 수 있습니다.
$ node <<<"require('./myutils')"
이렇게 하면 초기화 코드가 실행되지만 그 후 REPL도 즉시 닫힙니다.
아마도 Node.js에는 이 특정 문제에 대한 또 다른 해결책이 있을 수 있지만 문자열이나 파일의 입력을 혼합한 다음 터미널에서 계속 읽는 일반적인 방법이 있는지 궁금합니다.
고쳐 쓰다:Chris Tang의 솔루션작동하지만 Node.js REPL은 기본적으로 대화형 모드에서 실행되지 않습니다(터미널에서 읽지 않기 때문에 예상되는 현상입니다). 다행히 -i
Node.js 터미널에는 대화형 모드를 강제하는 옵션이 있습니다.
{ echo "require('./myutils')" ; cat ; } | node -i
답변1
{ echo "require('./myutils')" ; cat ; } | node
REPL 환경은 터미널에서 제공되지 않는 입력을 받을 때 다르게 동작할 수 있습니다(예: 프롬프트가 표시되지 않을 수 있음).