Создание нескольких каталогов одновременно с использованием сценария оболочки с mkdir и переменными

Это решается путем обновления системы. Он не отображается на всех ПК. Например, в тестируемом HP DV6000 я не появился, но он появился на настольном ПК Intel.

-2
задан 19 September 2017 в 16:05

2 ответа

Расширение скобки происходит задолго до изменения переменной и не происходит при присвоении переменной:

$ foo={a,b,c} $ echo $foo {a,b,c}

Сохраняйте общие части в переменной, а остальные в самой команде:

DIRECTORY_PATH="/home/LinuxServer/GIT/bbb/" TUTORIAL_PATH="${DIRECTORY_PATH}Tutorial" mkdir -p "$TUTORIAL_PATH"/{abc/def,pqr/{stu,vwx}}

Другой вариант заключается в использовании массивов, где расширение расширения происходит во время назначения:

TUTORIAL_PATHS=( "${DIRECTORY_PATH}Tutorial"/{abc/def,pqr/{stu,vwx}} ) mkdir -p "${TUTORIAL_PATH[@]}"
6
ответ дан 18 July 2018 в 06:35

Расширение скобки происходит задолго до изменения переменной и не происходит при присвоении переменной:

$ foo={a,b,c} $ echo $foo {a,b,c}

Сохраняйте общие части в переменной, а остальные в самой команде:

DIRECTORY_PATH="/home/LinuxServer/GIT/bbb/" TUTORIAL_PATH="${DIRECTORY_PATH}Tutorial" mkdir -p "$TUTORIAL_PATH"/{abc/def,pqr/{stu,vwx}}

Другой вариант заключается в использовании массивов, где расширение расширения происходит во время назначения:

TUTORIAL_PATHS=( "${DIRECTORY_PATH}Tutorial"/{abc/def,pqr/{stu,vwx}} ) mkdir -p "${TUTORIAL_PATH[@]}"
6
ответ дан 24 July 2018 в 18:38
  • 1
    Чтобы укрепить этот ответ: gnu.org/software/bash/manual/html_node/… . «Порядок расширений: расширение брекетки; расширение тильды, расширение параметров и переменных, арифметическое расширение и подстановка команд (выполняется слева направо); расщепление слов; и расширение имени файла. & quot; Здесь фигурные скобки никогда не расширяются, потому что уже слишком поздно, когда переменное расширение уже произошло. – takatakatek 19 September 2017 в 14:43

Другие вопросы по тегам:

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