Также вы можете сделать это:
$ a=(a b c d e f)
$ echo ${a[$(expr ${#a[@]} - 1)]}
Результат:
$ f
То, что вы делаете, это получаете все количество элементов в массиве и вычитаете -1, потому что вы получаете все элементы, а не начинаете с индекса массива, который равен 0.
Ваш вопрос может быть истолкован как довольно широкий, но я думаю, что то, о чем вы на самом деле спрашиваете, очень конкретно. Принципиальная разница между разными реализациями arm64 и aarch64.
Суть вашего вопроса в том, что разные процессоры предоставляют разные наборы инструкций. Обычно я ссылаюсь на эту страницу Википедии под названием:Список наборов инструкций , так как это самый полный список, который я когда-либо видел в Интернете.
В основе каждого микропроцессора лежит набор инструкций, которые он может выполнять. Интерфейс к наборам инструкций — это то, что компиляторы преобразуют языки программирования более высокого уровня, такие как C/C++, в машинный код. Этот машинный код представляет собой инструкции из набора инструкций ЦП. Кстати, инструкции в наборе инструкций обычно выглядят так:
х86 насм-https://rosettacode.org/wiki/Bitwise_operations#x86_Assembly extern printf
global main
section.text
main
mov eax, dword [_a]
mov ecx, dword [_b]
push ecx
push eax
and eax, ecx
mov ebx, _opand
call out_ops
ПРИМЕЧАНИЕ.:Вы также услышите, что машинный код называется языком ассемблера.
С этими двумя архитектурами я смог найти этот ответ от SO :под названием:Различия между arm64 и aarch64 , в котором указано следующее различие:
AArch64 is the 64-bit state introduced in the Armv8-A architecture. The 32-bit state which is backwards compatible with Armv7-A and previous 32-bit Arm architectures is referred to as AArch32. Therefore the GNU triplet for the 64-bit ISA is aarch64. The Linux kernel community chose to call their port of the kernel to this architecture arm64 rather than aarch64, so that's where some of the arm64 usage comes from.
As far as I know the Apple backend for aarch64 was called arm64 whereas the LLVM community-developed backend was called aarch64 (as it is the canonical name for the 64-bit ISA) and later the two were merged and the backend now is called aarch64.
So aarch64 and arm64 refer to the same thing.
Вы задаете слишком много вопросов, чтобы ответить на них одним вопросом. Но я постараюсь ответить на самое важное.
Q4. What makes me confused is the reason why archlinuxarm community doesn't provide stage rootfs tarball for only arm64 armel and etc. instead of different vendors' different products? Is it means that for example instruction set in DragonBoard 410c is different from Raspberry Pi 3? Or in other word, If I install Archlinuxarm for DragonBoard 410c to Raspberry Pi 3, What will happen? Can it boot properly?
Чтобы узнать подробности, вы должны спросить сообщество Arch, почему они решили делать что-то в рамках этого проекта. Что касается вашего вопроса о запуске Archlinuxarm, созданного специально для 410c, на Raspberry Pi 3, я бы посоветовал попробовать.
Оба этих ЦП являются процессорами ARM, как показано здесь:
Итак, я ожидаю, что вы сможете использовать одни и те же двоичные файлы на обоих. Наконец, я бы, вероятно, ответил на -вопрос на сайте Raspberry Pi Stackexchange. Есть множество вопросов по поводу того, что вы там задаете, например: