실행 흐름

  1. handle-user-input.ts : 터미널에서 사용자 입력 받음, 핸들러 스크립트로 전달
  2. input-handler.ts : 인자를 전달 받아 기능 수행

Install

npm i readline-sync
npm i --save-dev @types/readline-sync

1. package.json

{
  "scripts": {
    "test-input": "ts-node tool/handle-user-input.ts"
  }
}

2. /tool/handle-user-input.ts

import * as readlineSync from "readline-sync";
import { exec } from "child_process";

// 사용자에게 입력 받기
const userInput: string = readlineSync.question('Enter a string: ');

// 스크립트 실행
if (userInput) {
  const command: string = `ts-node ./tool/input-handler.ts "${userInput}"`;

  exec(command, (error, stdout, stderr) => {
    if (error) {
      console.error(`Error: ${error.message}`);
      return;
    }
    console.log(stdout);
  });
} else {
  console.log('Invalid input. Please provide a string.');
}

3. /tool/input-handler.ts

const a = process.argv[2];
const b = process.argv[3];
const c = process.argv[4];
console.log(`a: '${a}', b: '${b}', c: '${c}'`);