2017-04-23 84 views
0

我有這個腳本調用menal在我~/bin目錄:如何在bash腳本(Ubuntu 17.04)中正確設置別名?

#!/bin/sh 

alias mendir='cd ~/projects/myproject' 

它有可執行財產,我希望當我運行它,它設置一個適當的別名爲終端會話cd命令。但事實並非如此。當我在終端上鍵入$ menal,也沒有任何錯誤,但是當我之後嘗試$ mendir我得到

No command 'mendir' found, did you mean: 
Command 'menhir' from package 'menhir' (universe) 
mendir: command not found 

當我在終端上鍵入

$ alias mendir='cd ~/projects/myproject' 
$ mendir 

,它的工作原理。

我在做什麼錯?它是一個腳本範圍問題或什麼?

+0

不是重複的,但我認爲它會回答爲什麼你的別名沒有被持久化的問題 - https://superuser.com/questions/176783/what-is-the-difference-between-executing-a- bash-script-vs-sourcing-it – Lix

回答

1

是的,這是一個範圍問題。調用它通過以下方式將不會產生結果,你希望:

./bin/menal

如果你想別名仍然存在,使用source

source ./bin/menal

+0

堅持[在當前shell中]。如果OP打開一個新的終端,他們將需要再次「源」文件。 – Lix

+0

@Lix我如何正確地永久源代碼呢? – ephemeris

+0

將'source〜/ bin/menal'添加到〜/ .bashrc中 – yoones

0

你可以把它添加到您的.bash_profile

alias mendir='cd ~/projects/myproject' 

然後做source ~/.bash_profile

應該創建別名,並在每次登錄都會工作。

+0

沒有真正的需要將此添加到用戶bashrc或配置文件 - 只要該文件來源於正確的時間點,它可以位於任何位置。 – Lix

+0

真正的..OP試圖設置一個別名..這將使它持久.. –