Javascript相当于bash读取-p

时间:2016-07-28 17:59:38

标签: javascript bash

为了熟悉javascript并最终探索可能解析js脚本,我正在尝试将bash脚本转换为javascript(意图运行js的方式与运行bash相同)脚本)。到目前为止,我已经能够在js中复制大部分bash功能,除了参数提示。

例如,在bash中,我以这种方式提示脚本用户参数:

read -p "Are you a god? (Y/N) " ANSWER

表示用户输入的任何输入都将存储在变量ANSWER

从我可以继续使用我的脚本:

if [ "$ANSWER" = "Y" ]; then echo "You lying puny human"; else echo "Then die!"; fi

现在,我已经查看了javascript提供的各种选项,如readline模块或提示模块,但除非我遗漏了文档中提供的示例中的内容

https://nodejs.org/api/readline.html#readline_readline用于readline和 https://github.com/flatiron/prompt提示

看起来它会做我正在寻找的东西但是当我在实际的脚本中尝试时,我似乎无法将我的变量放在提示/ readline函数的范围之外

例如,如果我尝试这个:

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question('What do you think of Node.js? ', (answer) => {
  // TODO: Log the answer in a database
  console.log('Thank you for your valuable feedback:', answer);

  rl.close();
});

echo(answer);

我会收到错误,说明回声中使用的答案变量未声明

如果我尝试这样做:

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

var result
rl.question('What do you think of Node.js? ', (answer) => {
  result = answer
  console.log('Thank you for your valuable feedback:', answer);

  rl.close();
});

echo(result);

当提示出现时,echo将被解析,我会在我的提示行看到未定义的回显,然后我将能够为提示提供一个值,然后一旦提示被解析,脚本将结束

我的示例使用的是readline模块,但我的提示

几乎得到了相同的结果

所以在这个长篇背景之后重新提出我的问题: 我可以在javascript中使用read -p得到一些相同的行为,因为我有一些脚本正在运行,然后它会暂停以提示用户然后继续使用脚本的其余部分吗?

0 个答案:

没有答案