gpt4 book ai didi

node.js - Nodejs process.argv[2] 在空格后省略数据,即使在通过 bash 脚本运行时也是如此

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:26 25 4
gpt4 key购买 nike

所以我有一个带有参数的 Node 脚本,如果我单独运行 Node 脚本,那么像 game\of\Throws 这样的整个字符串被认为是 process.argv[2] 这是我想要和期望的,问题是当我运行一个名为 add 的非常小的 bash 脚本时,它由

#!/bin/bash

echo `nodejs ~/Codes/localHost/node/headsUp/add.js $1`

然后运行./add game\of\throths 现在process.argv[2]只是game这是为什么?如果可能的话,我希望有一个解决方案,允许我在参数之间放置空格以具有多个参数,而不是使用诸如 $@ 之类的东西。提前致谢。哦,当我在 bash 脚本中 echo $1 时,它确实显示为完整的权力的游戏

最佳答案

当您无法引用 $1 时,您是在告诉 bash 将参数重新拆分为单词。为了将 $1 (或任何其他参数或变量)逐字传递到另一个脚本或二进制文件中,您需要确保它被引用:

echo `nodejs ~/Codes/localHost/node/headsUp/add.js "$1"`

请注意,nodejs 的输出也将被分词,因为它没有被引用。如果您想保留格式(例如换行符),您还需要引用它:

echo "$(nodejs ~/Codes/localHost/node/headsUp/add.js "$1")"

这里我将已弃用的反引号语法更改为推荐的 $(...) 语法,这样嵌套得更好。

关于node.js - Nodejs process.argv[2] 在空格后省略数据,即使在通过 bash 脚本运行时也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30416169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com