Массив может содержать различные элементы
myArray=(1 2 "three" 4 "five")
Команда | Описание |
---|---|
arr=() | Создание пустого массива |
arr=(1 2 3) | Инициализация массива |
${arr[2]} | Получить третий элемент |
${arr[@]} | Получить все элементы |
${!arr[@]} | Получить индексы массива |
${#arr[@]} | Размер массива |
arr[0]=3 | Перезаписать первый элемент |
arr+=(4) | Добавить значение |
str=$(ls) | Записать вывод ls, как строку |
arr=( $(ls) ) | Записать вывод ls как массив файлов |
${arr[@]:s:n} | Получить n элементов начиная с индекса s |
for t in ${allThreads[@]}; do ./pipeline --threads $t done
for i in ${!allThreads[@]}; do ./pipeline --threads ${allThreads[$i]} done
${allThreads[@]} - все элементы в массиве
Если добавить восклицательный знак и сделать его ${!allThreads[@]}, то вернется список всех индексов массива (в нашем случае от 0 до 7). Другими словами, цикл for перебирает все индексы $i и считывает $i-й элемент из $allThreads, чтобы установить значение параметра -threads.
Добавление элементов в массив
myArray+=( "newElement1" "newElement2" )
allThreads=(1 2 4 8 16 32 64 128) allRuntimes=() for t in ${allThreads[@]}; do runtime=$(./pipeline --threads $t) allRuntimes+=( $runtime ) done