首页 > 解决方案 > Git-Bash,如何修改环境变量

问题描述

我有一个环境变量,其中包含:

    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 将包含要删除的目录开头的前缀。

标签: environment-variablesgit-bash

解决方案


经过大量搜索和一些玩耍后,我发现了以下内容:

要获取环境变量的字符长度:

    echo ${#VARNAME}

要从环境变量中获取子字符串:

    echo ${VARNAME:start:length}

其中“开始”是基数 0,“长度”是要提取的字符数,长度是可选的,如果未提供,则只需使用:

    echo ${VARNAME:start}

将导致整个内容从指定的起始偏移量开始。

所以就我而言,解决方案是:

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

用转义空格搜索和替换任何空格:

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

“//”是替换所有实例,如果只是“/”那么只有第一个被替换,“/\”是空格字符的转义版本。


推荐阅读