使用plistBuddy获取值数组

时间:2016-11-30 05:04:18

标签: arrays linux bash shell plistbuddy

git bundle --help

输出继电器:

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

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

1 个答案:

答案 0 :(得分:1)

似乎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]}访问第二个值。