使用 plistBuddy 获取值数组
Posted
技术标签:
【中文标题】使用 plistBuddy 获取值数组【英文标题】:Get Array of Values using plistBuddy 【发布时间】:2016-11-30 05:04:18 【问题描述】: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
如何获取数组中的第一项?
【问题讨论】:
【参考方案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]
访问第二个值。
【讨论】:
以上是关于使用 plistBuddy 获取值数组的主要内容,如果未能解决你的问题,请参考以下文章