4

我有这个奇怪的问题,我不明白为什么会发生。对于任何 bash 忍者来说,这应该是小菜一碟。

OPTIONS="-auto -batch -ignore 'Path one' -ignore 'Path two' -ignore 'Path three'"
unison $OPTIONS a b

我希望这会被翻译为...

unison -auto -batch -ignore 'Path one' -ignore 'Path two' -ignore 'Path three' a b

...然后工作。但事实并非如此。运行完整命令时,我没有问题,一致就可以了。但是当我运行命令时unison $OPTIONS a b,齐声抱怨:

Usage: unison [options]
    or unison root1 root2 [options]
    or unison profilename [options]

For a list of options, type "unison -help".
For a tutorial on basic usage, type "unison -doc tutorial".
For other documentation, type "unison -doc topics".

unison was invoked incorrectly (too many roots)

我究竟做错了什么?

4

1 回答 1

7

BASH 常见问题解答条目 #50:“我正在尝试将命令放入变量中,但复杂的情况总是失败!”

options=(-auto -batch -ignore 'Path one' ...)
unison "${options[@]}" a b
于 2013-01-28T14:33:16.103 回答