2014-01-16 24 views
2

我最近開始在Go中編寫很多應用程序,並且需要在編譯程序時設置一些環境變量。當cding進入一個目錄時觸發一個命令

我正在使用bash,並希望使用每個項目目錄中的文件來設置任何環境變量或運行任何其他需要的命令。

所以我們的想法是創建一個名爲.workspace的文件,其中包含特定於該特定項目的任何命令。當我進入一個具有觸發命令的目錄時,我不必手動設置環境變量或輸入.workspace文件。

我曾想過別名cd來執行cd,然後檢查是否存在.workspace文件,如果它確實存在來源文件。它看起來不是很優雅,所以我想知道在沿着這條路線前是否還有其他選擇。

我知道rvm - ruby​​版本管理器 - 在檢測到.rvmrc文件並執行類似操作時使用該文件爲該文件夾設置所需的ruby版本。

+3

是躍居想到的解決辦法是,你所描述的一個... – GreenAsJade

+0

事情是[這裏](HTTPS://gist.github。 com/lgoldstien/8453726)呢? – onmylemon

+1

我覺得這樣:)可能要發佈的答案... – GreenAsJade

回答

2

因此,看起來最好的辦法是將cd別名爲檢查.workspace文件是否存在的函數,如果存在,請將其來源。

#!/bin/bash 

function workspace_cd() { 
    cd [email protected] && [ -f ".workspace" ] && source .workspace 
} 

alias cd="workspace_cd" 

所以,如果你這個來源在.profile它會檢查是否有.workspace文件和源它。我對這個建議的用途是把出口環境在文件中:

export GOPATH=/Users/lg/Documents/Projects/SomeGoProject 
export PATH=$PATH:$GOPATH/bin 
+0

這麼簡單,但我修復了很多我開始在倫敦的代碼。謝謝! – n0v1c3

相關問題