【问题标题】:Why does process.argv[3] return something completely unexpected when it is '*'? [duplicate]为什么 process.argv[3] 当它是 '*' 时会返回一些完全出乎意料的东西? [复制]
【发布时间】:2017-08-25 07:04:42
【问题描述】:

我有一个非常简单的计算器应用程序:

if (process.argv[3]==='+') console.log(parseInt(process.argv[2]) + parseInt(process.argv[4]));
if (process.argv[3]==='-') console.log(parseInt(process.argv[2]) - parseInt(process.argv[4]));
if (process.argv[3]==='*') console.log(parseInt(process.argv[2]) * parseInt(process.argv[4]));
if (process.argv[3]==='/') console.log(parseInt(process.argv[2]) / parseInt(process.argv[4]));
console.log(process.argv[3])  

2 + 2, 2 - 2, 2 / 2 都按预期工作,但 2 * 2 会注销脚本名称。
为什么会这样?乘号是怎么回事?

【问题讨论】:

  • 不是专家,但可能与通配符有关?就像你想列出所有 js 文件并执行 "*.js"...

标签: javascript node.js


【解决方案1】:

这是因为*是一个shell通配符,它​​对shell有特殊的意义,在传递给节点之前先扩展它。

你必须用\* 这样或"*" 或这样'*' 传递它。

【讨论】:

    猜你喜欢
    • 2017-09-13
    • 2019-09-03
    • 2012-01-25
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多