Unix
cd 在 bash 腳本中
我在 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。