Git-Bash, как изменить переменную окружения - PullRequest
0 голосов
/ 17 октября 2019

У меня есть переменная окружения, которая содержит:

    C:\\Users\\u49100\\OneDrive\\Documents\\CA20-4021_BUILD_1.0.876\\Name\\sc_app

Я хочу изменить переменную окружения при разборке скрипта:

    C:\\Users\\u49100\\

Таким образом, результат может быть назначен новомупеременная:

    OneDrive\\Documents\\CA20-4021_BUILD_1.0.876\\Name\\sc_app

Есть ли способ сделать что-то вроде следующего:

   NEW_VARIABLE=$FULL_DIR - $DIR_PREFIX

Где $ FULL_DIR будет содержать полный каталог, а $ DIR_PREFIX будет содержать префикс в началекаталог для удаления.

1 Ответ

0 голосов
/ 17 октября 2019

После долгих поисков и некоторой игры я нашел следующее:

Чтобы получить длину в символах переменной среды:

    echo ${#VARNAME}

Чтобы получить вложеннуюстрока из переменной окружения:

    echo ${VARNAME:start:length}

Где «начало» - это основание 0, а «длина» - это количество символов для извлечения, длина не обязательна, и если не указано, просто используйте:

    echo ${VARNAME:start}

Результатом будет весь контент из указанного начального смещения.

Поэтому для моего случая решение:

    export NEW_VARIABLE=${FULL_DIR:${#DIR_PREFIX} + 1}

Для поиска и замены любых пробелов на экранированные пробелы:

    export NEW_VARIABLE=${NEW_VARIABLE// /\\ }

«//» заменяет все экземпляры, если просто «/», то заменяется только первый, «/ \» - экранированная версия символа пробела.

...