2016-11-12 133 views
-1

我將如何創建一個環境變量(也許這不是正確的字?)使用環境變量作爲很長路徑的快捷方式使用?但是,我不希望它成爲完整的路徑。我知道如何設置的絕對路徑中的.bashrc但我想是這樣的:全路徑的一部分

cd $MYPATH/further/down/path/ 

如何設置$MYPATH以這種方式使用?每當我嘗試谷歌這一切回來的是我不想要的完整路徑的別名。

編輯#1)我想要的路徑,對於每個新的終端會話持久性。所以我正在尋找一個命令放在bashrc中。做alias MYPATH=~/my/path不起作用。我確信有一個簡單的命令,我只是沒有意識到這是我想要的。

+0

如果你將'MYPATH'設置爲你想要的路徑,那有什麼問題? 'cd'將工作,因爲bash評估env。變量...不清楚...請[編輯]更好地解釋。 –

+0

除了CDPATH,你還可以使用別名,你經常訪問的東西'別名工作= CD/...' – eckes

回答

1

這與您認爲的完全相同。如果定義

export MYPATH=/home/user 

那麼你可以使用它像

cd $MYPATH/further/down/path/ 

在所有shell啓動的,你所定義的變量外殼的孩子。如果你想讓它持久化,你可以把它放在profile或bashrc腳本中,所以它在每次登錄時設置。

注意:如果你要連接的變量之後字母,你將不得不使用這樣的:

cd ${MYPATH}2/other 

最後,如果它包含它不會傷害引用變量(但不使用'singlequotes'爲空白這個):

cd "${MYPATH}/test" 
+0

謝謝!出口,以前從未使用過!這正是我正在尋找的:) – Twitchykid

+0

'export'只需要設置一個* child *進程將使用的變量的值,而不僅僅是當前的shell。 – chepner

+0

@chepner是的,我默認包含它,因爲它有一個孩子的外殼並不罕見 – eckes

1

CDPATH包含當嘗試解析用作cd的參數的相對目錄時應該用作起點的目錄列表。例如,

CDPATH=/a/b/c/d/e:/a/b/c/f/g 

cd bin 

如果bin不在當前工作目錄的目錄,bash將首先嚐試改變/a/b/c/d/e/bin,然後/a/b/c/f/g/bin