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 FAQエントリ#50:「コマンドを変数に入れようとしていますが、複雑なケースは常に失敗します!」

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