Ваше первое предположение не обязательно верно как "objects"
или быть более точными файлами или исполняемыми файлами может иметь эти полномочия именно так, они не могут быть выполнены или считаны обычным пользователем / процесс, но с тем сказанным существует несколько процессов на телефоне на базе Android, работающем с root
полномочия.
Я думаю, что очень важно понять, что Android является только системой Linux внизу, т.е. всем, что Вы видите по Телефону, не имеет многого вместе с Системой Linux как Ubuntu или Fedora, т.е. Вы не можете только выполнить команду как root
с большей частью запаса изображения Android установлены на реальных аппаратных средствах. Нет также никакой потребности вообще для ввода a root
пароль (насколько я знаю андроид, не установили пароль root) как Android не был многопользовательской системой.
Поскольку у Вас уже есть обычный пользователь по Вашему телефону, может быть возможно использовать/напасть саму систему для получения полномочий пользователя root, это было, например, сделано успешно для более старых систем Android как 2,1.
Я думаю, что необходимо взглянуть на, Как я базируюсь свой вопрос об устройстве на базе Android, он может помочь упростить и объяснить некоторые вещи.
Если Вы не объявляете переменную как ассоциативный массив, то
klang=([string_0]='element_0' [string_1]='element_1' [string_2]='element_2')
взят в качестве нормального присваивания массива (хотя примечание это в bash
и ksh93
, нормальные массивы не являются действительно нормальными массивами, они - более разреженные массивы или ассоциативные массивы с ключами, ограниченными положительными целыми числами).
В bash
, для нормального массива ключи оценены как арифметические выражения. Как арифметическое выражение, string_0
оценивает к содержанию $string_0
, и если это пусто, к 0
. Таким образом, вышеупомянутое, вероятно, совпадет с:
klang=([0]='element_0' [0]='element_1' [0]='element_2')
Так, это совпадает с определением ${klang[0]}
(который совпадает с $klang
) 3 раза.
Это контрастирует с ksh93
массивы (который bash
главным образом скопированный), где a=([x]=y)
синтаксис только поддерживается для ассоциативных массивов и автоматически создал бы ассоциативный массив при использовании.
zsh
ассоциативные массивы (которые предшествуют bash
к десятилетиям), отличаются снова. zsh
нормальные массивы являются нормальными массивами, zsh
не поддерживает поддельное a=([x]=y)
синтаксис. В zsh
, необходимо объявить ассоциативные массивы прежде, чем определить их, и они определяются как:
normal_array=(val1 val2 val3)
typset -A associative_array
associative_array=(key1 val1 key2 val2)
associative_array+=(key3 val3...)
И $associative_array
расходует к непустым значениям как для нормальных массивов (в неопределенном порядке), и "$associative_array[@]}"
ко всем значениям как для нормальных массивов. ${(k)associative_array}
для непустых ключей, "${(k@)associative_arrays}"
для всех ключей, "${(kv@)associative_array}"
для ключей и значений, таким образом, можно распечатать содержание ассоциативного массива с:
printf '%s => %s\n' "${(@kv)associative_array}"
Это также означает, что копирование ассоциативного массива является намного менее громоздким, чем с ksh93
/bash
:
typeset -A B
B=("${(kv@)A}")
в противоположность:
unset B
typeset -A B
for k in "${!A[@]}"; do B[$k]=${A[$k]}; done
Необходимо сначала объявить переменную (klang
здесь), чтобы быть ассоциативным массивом с bash
:
$ declare -A klang
$ klang=([string_0]='element_0' [string_1]='element_1' [string_2]='element_2')
$ echo "${klang[*]}"
element_2 element_0 element_1
$ echo "${#klang[*]}"
3
Ассоциативные массивы были представлены с bash
версия 4.0.
Они были сначала реализованы ksh93
, с которым не появляется эта проблема.
sensors
---------121 ассоциативный массив--------178118----Shell не заказан дизайном, таким образом, нет никакого 'второго элемента' для начала.
– jlliagre
13.01.2014, 03:23