为什么process.argv在节点js repl中将“ *”视为“数字”?

时间:2018-10-02 14:47:46

标签: javascript node.js

当我输入+,-,/作为输入时,它将起作用。但是,如果是*,则不起作用。

console.log(process.argv);
let num1 = Number.parseInt(process.argv[2]);
let sign = process.argv[3];
let num2 = Number.parseInt(process.argv[4]);
if (sign === '+') {
  console.log(`Summation is ${num1 + num2}`);
} else if (sign === '-') {
  console.log(`Substraction is ${num1 - num2}`);

} else if (sign === '*') {
  console.log(`Multiplication is ${num1 * num2} `);
} else if (sign === '/') {
 console.log(`Division is ${num1 / num2} `);
}

1 个答案:

答案 0 :(得分:1)

*不会被视为数字,而是由Shell解释。

zshell中的*运算符是文件遍历的快捷方式。也可能在其他shell中使用,但是您说过您正在使用zsh(我也是)。

我尝试运行您的程序,它在等式中两个数字之间插入本地目录中的所有文件。

我的建议是使用x作为乘法符号来避免它。