Cocoadialog下拉列表作为列表

时间:2011-08-02 20:00:37

标签: bash

为什么不包括foo元素?

items=(  "invisible below" foo "invisible above" "bar" "foo" not invisible )
# invisible:                ^
CocoaDialog standard-dropdown --text "Choose:" --items "${items[@]}" --string-output --float --debug

1 个答案:

答案 0 :(得分:3)

问题是CocoaDialog将值列表加载到一个数组中,其中键和值是相同的。它基本上将foo和“foo”看作同一个项目,第二个将覆盖第一个 - 就像PHP中的数组一样。

因此,如果您将阵列更改为:

items=(  "invisible below" foo1 "invisible above" "bar" "foo" not invisible )

你会看到foo1出现了:

image http://img269.imageshack.us/img269/6738/screenshot20110818at223.png

我们知道它是CocoaDialog而不是bash的原因是我们可以打印出项目数组:

$ items=(  "invisible below" foo "invisible above" "bar" "foo" not invisible )

$ printf "%s\n" "${items[@]}"
invisible below
foo
invisible above
bar
foo
not
invisible

所以,你传递的数组很好 - CocoaDialog只是用第二个值覆盖第一个值。