2015-07-03 29 views
2

在Windows下的Git的bash當我運行echo $PATH命令提取Windows路徑指定的路徑,我得到了以下的輸出:如何使用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短語識別它。

回答

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

回報:

/c/Program Files/Boot2Docker for Windows 
2

使用bash的正則表達式:

[[ $PATH =~ ([^:]*"Boot2Docker for Windows"[^:]*) ]] && echo "${BASH_REMATCH[1]}" 
/c/Program Files/Boot2Docker for Windows 
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