将 bash 变量传递给 rollup.js

Aft*_*ame 3 bash rollupjs

我正在尝试在 bash 中将变量传递给 rollup.js。\n我不\xe2\x80\x99t 不知道这是 bash 问题,还是 rollup.js 的问题,因为我在 bash 方面没有那么丰富的经验。但也许有人可以帮助我\xe2\x80\xa6

\n\n

这是我的终端输入:

\n\n
MY_INPUT="/path to my/input.js"\nMY_OUTPUT="/path to my/output.js"\nrollup --input $MY_INPUT --output $MY_OUTPUT\n
Run Code Online (Sandbox Code Playgroud)\n\n

Rollup 抛出错误:

\n\n
\n

rollup 一次只能捆绑一个文件

\n
\n\n

我将问题追溯到路径内的空白处。

\n\n

然而,这两种方法都有效:

\n\n
rollup --input "/path to my/input.js" --output "/path to my/output.js"\nrollup --input /path\\ to\\ my/input.js --output /path\\ to\\ my/output.js\n
Run Code Online (Sandbox Code Playgroud)\n\n

仅当我使用变量时才会出现此问题。\n我还尝试转义变量而不是将其放在括号中,但这也不起作用。

\n\n

有没有办法让变量像我想要的那样运行,这是 rollup.js 必须处理的问题,还是根本不可能使用其中包含空格的路径作为变量的参数?

\n

Sto*_*ica 5

您需要在将变量传递给时引用它们rollup

rollup --input "$MY_INPUT" --ouput "$MY_OUTPUT"
Run Code Online (Sandbox Code Playgroud)

这是因为这些变量包含空格,shell 将其解释为多个参数。通过使用双引号引起来,这些值将被解释为单个字符串。

请注意,如果您将 Bash 脚本复制粘贴到http://www.shellcheck.net/#上,它可以指出此类问题。