Как присвоить диапазон чисел простой переменной bash

Сразу после публикации этого вопроса я нашел ответ на StackExchange. Вместо pmount LABELмне нужно использовать udiskctl mount -b BLOCKDEVICE. Замените это в сценарии и адаптируйте правило udev, и оно заработает.

2
19.04.2021, 08:11
2 ответа

Назначить с помощью:

$ n=({0..9})

Использование n=(x)означает, что nявляется массивом с xв качестве его содержимого.

Затем выведите полный массив с помощью:

$ echo "${n[@]}"
0 1 2 3 4 5 6 7 8 9

или выводить по одному элементу с помощью

$ for i in "${n[@]}"; do
>   printf "%s " "$i"
> done
0 1 2 3 4 5 6 7 8 9

или получить доступ к определенному элементу с помощью:

$ echo "${n[0]}"
0

Если вы ищете " массив bash "

, уже доступно много информации.
5
28.04.2021, 22:52

Вот два метода:

  1. использовать массив

    $ n=( {0..9} )
    $ declare -p n
    declare -a n=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5" [6]="6" [7]="7" [8]="8" [9]="9")
    
  2. расширить диапазон до одной строки

    $ n=$(printf "%s" {0..9})
    $ declare -p n
    declare -- n="0123456789"
    
3
28.04.2021, 22:52

Теги

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