我希望运行 pwd
,如果内容包括“/Volumes/Storage/Users/testuser/”,则重定向到 ~/,然后是 pwd
的其余内容。例如,如果 pwd 返回:
/Volumes/Storage/Users/testuser/Desktop/folder1/folder2/
这个 bash 脚本将 cd 到:
~/Desktop/folder1/folder2/
到目前为止我所拥有的是这个,但我似乎无法让匹配组正确显示:
[[ $(pwd) =~ \/Volumes\/Storage\/Users\/testuser\/(.*) ]] && cd "~/${BASH_REMATCH[1]}"
最佳答案
也许您对替代解决方案感兴趣。
我建议以下使用 shell 参数扩展。
PREFIX="/Volumes/Storage/Users/testuser/"
PWD=`pwd`
[[ ${PWD} =~ ${PREFIX}* ]] && cd ~/"${PWD#${PREFIX}}"
${PWD#${PREFIX}}
形式删除了 ${PREFIX}
开头的 ${PWD}
。关于bash - cd 使用 bash 重新匹配和 pwd 的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17886383/