Получить массив значений с помощью plistBuddy
var="keychain-access-groups"
declare -a val=$( /usr/libexec/PlistBuddy -c "Print $var" "sample.plist")
echo ${val}
echo ${val[0]}
Ouput:
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, вы должны окружить $(...)
подоболочка с другим (...)
, как это:
declare -a val=($(/usr/libexec/PlistBuddy | sed -e 1d -e '$d'))
После этого вы можете получить доступ к первому значению с помощью ${val[0]}
и второе значение с ${val[1]}
,