为什么不包括foo元素?
items=( "invisible below" foo "invisible above" "bar" "foo" not invisible )
# invisible: ^
CocoaDialog standard-dropdown --text "Choose:" --items "${items[@]}" --string-output --float --debug
答案 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只是用第二个值覆盖第一个值。