Действительно ли это - массив?

Со статистикой GNU:

shopt -s dotglob

for file in dirA/*; do
    [[ -f "dirB/${file##*/}" ]] || continue
    if (( "$(stat -c %Y "$file")" > "$(stat -c %Y "dirB/${file##*/}")" )); then
        # take action
    fi
done
2
28.01.2014, 04:57
2 ответа

Это - переменная со строкой, присвоенной ему.

variable='val1 val2 val3 val4'

Можно сказать, что это - строка, когда мы производим его использование echo:

$ echo $variable
val1 val2 val3 val4

Пример массива

Для определения той серии элементов как массив, Вы могли сделать следующее:

$ variable=(val1 val2 val3 val4)

При повторении переменных, которые определяются как массивы, Вы получите просто первый возвращенный элемент, как так:

$ echo $variable
val1

Для наблюдения определенных элементов в массиве можно обеспечить индекс:

$ echo ${variable[0]}
val1
$ echo ${variable[2]}
val3

Или все они:

$ echo ${variable[@]}
val1 val2 val3 val4
2
27.01.2020, 22:06
  • 1
    @casey, хорошая выгода, удаленная. –  Chris Down 29.01.2014, 04:22
  • 2
    @ChrisDown - извините, я думал, что Вы поняли, что и просто давали другое положение, если это был Bash. –  slm♦ 29.01.2014, 04:23

Это не массив. Для создания этого как массива, Вы использовали бы

set -A variable val1 val2 val3 val4

который присвоил бы val1 переменной [0] и так далее.

Что Вы имеете, кажется, просто существует значения, к которым присоединяются пробелы () в единственную строку.

1
27.01.2020, 22:06

Теги

Похожие вопросы