3
var="keychain-access-groups"
declare -a val=$( /usr/libexec/PlistBuddy -c "Print $var" "sample.plist")
echo ${val}
echo ${val[0]}

输出:

Array { ABCD.com.bus.NoEntitlements ABCD.com.bus.sharing }
Array { ABCD.com.bus.NoEntitlements ABCD.com.bus.sharing }

如何获取数组中的第一项?

4

1 回答 1

3

它似乎PlistBuddy产生这样的输出:

Array {
    ABCD.com.bus.NoEntitlements
    ABCD.com.bus.sharing
}

也就是多行。如果你想得到 的元素Array,你需要先切掉第一行和最后一行:

/usr/libexec/PlistBuddy | sed -e 1d -e '$d'

接下来,要将其读入 Bash 数组,您需要$(...)用另一个 包围子shell (...),如下所示:

declare -a val=($(/usr/libexec/PlistBuddy | sed -e 1d -e '$d'))

在此之后,您可以使用 访问第一个值,使用 访问${val[0]}第二个值${val[1]}

于 2016-11-30T06:38:20.823 回答