실행 흐름
handle-user-input.ts
: 터미널에서 사용자 입력 받음, 핸들러 스크립트로 전달
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}'`);