如何使用bash从Windows PATH中提取指定的路径

时间:2015-07-03 14:40:41

标签: windows bash

在我运行echo $PATH命令的Windows下的Git bash中,我得到以下输出:

c/Windows/System32:/c/Python27:/c/Python27/Scripts:c/HashiCorp/Vagrant/bin:/c/Program Files (x86)/GNU/GnuPG/pub:/c/Program Files (x86)/Private Shell:/c/Program Files (x86)/OpenSSH/bin:/c/HashiCorp/Vagrant/bin:/c/Program Files/Common Files/Intel/WirelessCommon/:/c/Program Files/Boot2Docker for Windows:c/Windows/System32:/c/Python27:/c/Python27/Scripts

我需要做的是将整个POSIX路径(例如/c/Program Files/Boot2Docker for Windows)提取到bash脚本中的变量,并通过Boot2Docker for Windows短语识别它。

3 个答案:

答案 0 :(得分:4)

echo $PATH | grep -o "[^:]*Boot2Docker for Windows[^:]*"

返回:

/c/Program Files/Boot2Docker for Windows

答案 1 :(得分:2)

使用BASH正则表达式:

[[ $PATH =~ ([^:]*"Boot2Docker for Windows"[^:]*) ]] && echo "${BASH_REMATCH[1]}"
/c/Program Files/Boot2Docker for Windows

答案 2 :(得分:2)

read与自定义IFS一起使用。

b2ddir=
IFS=: read -a a <<<"$WPATH"
for p in "${a[@]}"; do
    case "$p" in
        *"Boot2Docker for Windows"*)
        b2ddir=$p
        break
        ;;
    esac
done
declare -p b2ddir