Unix

cd 在 bash 腳本中

  • December 16, 2010

我在 Windows 環境中工作,但更喜歡在 cygwin 中使用 bash 作為我的 shell。要 cd 到我在 windows 窗體中給出的冗長路徑,我輸入:

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

..從剪貼板粘貼windows路徑。由於我很懶,因此我嘗試創建一條捷徑:

#!/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'應該只是實際工作。您可能希望啟用該nodosfilewarning選項。

您可以將其設置為別名:

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

將其粘貼在您的.bashrc文件中或您設置別名的任何其他位置,您應該是金色的。

否則,您需要將帶有自定義腳本路徑的目錄放在路徑中,而不是使用實際 cd 命令的目錄(我認為 cygwin 將路徑設置為.bash_profile);這可能行不通,因為 cd 是內置的 shell。

引用自:https://serverfault.com/questions/213344