2017-04-23 55 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试图设置一个别名..这将使它持久.. –