在 .profile 中为函数创建别名
Create Alias for Function in .profile
我想在我的 $GOPATH/bin 目录中 运行 可执行文件,而不必在那里 cd 所以我在我的 .profile 文件中添加了以下内容:
export GOBIN=$HOME/go-workspace/bin
function _rungo() { "$GOBIN" "@" }
alias rungo='_rungo'
别名定义在第 28 行。
这个想法是,在命令行上我输入 运行go executable_name to 运行 an executable.
当我登录我的帐户时,出现以下错误:
line 31: syntax error: unexpected end of file
如果我注释掉别名定义,我会收到此错误
line 29: syntax error: unexpected end of file
很明显我的函数定义不正确。
我做错了什么?
函数右括号必须换行。或者,使用 ;
.
为了说明问题,看这个例子:
function rungo() { echo X }
}
rungo # outputs: X }
如果你将一个bash函数声明为一个单行函数,你需要在函数结束之前包含一个;
,因此工作函数应该是
function _rungo() { "$GOBIN" "@" ;}
编辑:
回答以下问题:
Thanks Karoly and Zuzzuc. I've decided to keep the function as a one-liner so I added the ; When I issue a command like "rungo hello" I get a message that says /home/smurphy/go-workspace/bin is a directory Is it possible to do what I want to do?
嗯,首先你不需要写 function myFunction()
因为 myFunction()
也可以。
进入正题,不需要别名rungo,只需将函数命名为rungo即可。创建别名只是浪费时间,因为它会将其输入重定向到您创建的函数。
失败的部分原因是别名不能接受参数。我也不确定您是否需要“@$1”中的“@”。
我也认为使用 exec "$GOBIN/"
而不是 "$GOBIN" "@"
会更好。
解决方案
改变
export GOBIN=$HOME/go-workspace/bin
function _rungo() { "$GOBIN" "@" }
alias rungo='_rungo'
到
export GOBIN=$HOME/go-workspace/bin
function rungo() { exec "$GOBIN/" ;}
希望这对您有所帮助!
我想在我的 $GOPATH/bin 目录中 运行 可执行文件,而不必在那里 cd 所以我在我的 .profile 文件中添加了以下内容:
export GOBIN=$HOME/go-workspace/bin
function _rungo() { "$GOBIN" "@" }
alias rungo='_rungo'
别名定义在第 28 行。 这个想法是,在命令行上我输入 运行go executable_name to 运行 an executable.
当我登录我的帐户时,出现以下错误:
line 31: syntax error: unexpected end of file
如果我注释掉别名定义,我会收到此错误
line 29: syntax error: unexpected end of file
很明显我的函数定义不正确。
我做错了什么?
函数右括号必须换行。或者,使用 ;
.
为了说明问题,看这个例子:
function rungo() { echo X }
}
rungo # outputs: X }
如果你将一个bash函数声明为一个单行函数,你需要在函数结束之前包含一个;
,因此工作函数应该是
function _rungo() { "$GOBIN" "@" ;}
编辑:
回答以下问题:
Thanks Karoly and Zuzzuc. I've decided to keep the function as a one-liner so I added the ; When I issue a command like "rungo hello" I get a message that says /home/smurphy/go-workspace/bin is a directory Is it possible to do what I want to do?
嗯,首先你不需要写 function myFunction()
因为 myFunction()
也可以。
进入正题,不需要别名rungo,只需将函数命名为rungo即可。创建别名只是浪费时间,因为它会将其输入重定向到您创建的函数。
失败的部分原因是别名不能接受参数。我也不确定您是否需要“@$1”中的“@”。
我也认为使用 exec "$GOBIN/"
而不是 "$GOBIN" "@"
会更好。
解决方案
改变
export GOBIN=$HOME/go-workspace/bin
function _rungo() { "$GOBIN" "@" }
alias rungo='_rungo'
到
export GOBIN=$HOME/go-workspace/bin
function rungo() { exec "$GOBIN/" ;}
希望这对您有所帮助!