Докер-контейнеры совместно используют оперативную память для файлов, отображаемых в память из того же слоя, но из другого образа?

Ваша переменная(files_to_scp)содержит буквальную строку "{aaa,bbb}*_list.txt", НЕ расширение всех соответствующих файлов. bash не раскрывает фигурные скобки при присвоении скалярной переменной.

Однако

bash расширяет их для массивов. Вместо этого используйте массив.

напр.

files_to_scp=( {aaa,bbb}*_list.txt )
scp "${files_to_scp[@]}" user@host:.

Вот (упрощенный, практический )пример и объяснение, показывающее, что происходит:

  1. Я создал кучу файлов, соответствующих вашему шаблону

    $ mkdir spike
    $ cd spike
    $ touch {aaa,bbb}{01..10}_list.txt
    $ ls
    aaa01_list.txt  aaa05_list.txt  aaa09_list.txt  bbb03_list.txt  bbb07_list.txt
    aaa02_list.txt  aaa06_list.txt  aaa10_list.txt  bbb04_list.txt  bbb08_list.txt
    aaa03_list.txt  aaa07_list.txt  bbb01_list.txt  bbb05_list.txt  bbb09_list.txt
    aaa04_list.txt  aaa08_list.txt  bbb02_list.txt  bbb06_list.txt  bbb10_list.txt
    
  2. ваше назначение переменной сохраняет литеральную строку:

    $ files_to_scp="{aaa,bbb}*_list.txt"
    $ declare -p files_to_scp
    declare -- files_to_scp="{aaa,bbb}*_list.txt"
    
  3. и bash делает то же самое без кавычек:

    $ files_to_scp={aaa,bbb}*_list.txt
    $ declare -p files_to_scp
    declare -- files_to_scp="{aaa,bbb}*_list.txt"
    
  4. при использовании массива каждое совпадающее имя файла сохраняется как элемент массива.

    $ files_to_scp=( {aaa,bbb}*_list.txt )
    $ declare -p files_to_scp
    declare -a files_to_scp=([0]="aaa01_list.txt" [1]="aaa02_list.txt" [2]="aaa03_list.txt" [3]="aaa04_list.txt" [4]="aaa05_list.txt" [5]="aaa06_list.txt" [6]="aaa07_list.txt" [7]="aaa08_list.txt" [8]="aaa09_list.txt" [9]="aaa10_list.txt" [10]="bbb01_list.txt" [11]="bbb02_list.txt" [12]="bbb03_list.txt" [13]="bbb04_list.txt" [14]="bbb05_list.txt" [15]="bbb06_list.txt" [16]="bbb07_list.txt" [17]="bbb08_list.txt" [18]="bbb09_list.txt" [19]="bbb10_list.txt")
    
1
30.09.2021, 11:12
0 ответов

Теги

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