bash 脚本中的 cd

bash 脚本中的 cd

我在 Windows 环境中工作,但更喜欢使用 cygwin 中的 bash 作为我的 shell。要 cd 到 Windows 窗体中给出的较长路径,我输入:

cd $(cygpath -u 'Z:\Some\long\windows\path')

..从剪贴板粘贴窗口路径。由于我比较懒,所以我尝试创建一条快捷方式,如下所示:

#!/usr/bin/env bash
if [ -z "$1" ]; then
    exit 0
else 
    TGT=$(cygpath -u $1)    
    cd $TGT
fi
exit 0

..然后意识到 cd 发生在脚本运行的 shell 中,而不是我调用脚本的 shell 中,因此没有达到预期的效果。我该如何实现它?

答案1

Plaincd 'Z:\Some\long\windows\path'实际上应该可以正常工作。不过,您可能希望启用该nodosfilewarning选项。

答案2

您可以将其设置为别名:

alias cd='cd $(cygpath -u "$1")'

将其粘贴到您的.bashrc文件中或您设置别名的任何其他地方,然后您就成功了。

否则,您需要将包含自定义脚本路径的目录放在路径中比包含实际 cd 命令的目录更靠前的位置(我认为 cygwin 在 中设置了路径.bash_profile);这可能不起作用,因为 cd 是 shell 内置命令。

相关内容