我在Windows环境下工作,但更喜欢在cygwin中使用bash作为我的shell。 要cd到一个冗长的path,我在Windows窗体中给我input:
cd $(cygpath -u 'Z:\Some\long\windows\path')
..从剪贴板中取出窗口path。 由于我很懒,所以我试图做一个快捷方式:
#!/usr/bin/env bash if [ -z "$1" ]; then exit 0 else TGT=$(cygpath -u $1) cd $TGT fi exit 0
..然后意识到,CD发生在我的脚本运行在shell中,而不是我从它所调用的,所以没有预期的效果。 我该如何做这项工作?
简单的cd 'Z:\Some\long\windows\path'应该只是实际工作。 尽pipe如此,您可能还想启用nodosfilewarning选项。
您可以将其设置为别名:
alias cd='cd $(cygpath -u "$1")'
坚持在你的.bashrc文件或其他任何你有你的别名设置,你应该是金。
否则,你需要将path放在你的自定义脚本path中,而不是使用实际的cd命令(我想cygwin在.bash_profile设置path)。 这可能不会工作,因为CD是一个内置的shell。