gpt4 book ai didi

linux - 在 .profile 中为函数创建别名

转载 作者:太空狗 更新时间:2023-10-29 12:25:59 27 4
gpt4 key购买 nike

我想在我的 $GOPATH/bin 目录中运行可执行文件,而不必在那里 cd 所以我将以下内容添加到我的 .profile 文件中:

    export GOBIN=$HOME/go-workspace/bin
function _rungo() { "$GOBIN" "@$1" }
alias rungo='_rungo'

别名定义在第 28 行。我的想法是在命令行上输入 rungo executable_name 来运行可执行文件。

当我登录我的帐户时,出现以下错误:

     line 31: syntax error: unexpected end of file

如果我注释掉别名定义,我会得到这个错误

    line 29: syntax error: unexpected end of file

很明显我的函数定义不正确。

我做错了什么?

最佳答案

如果将 bash 函数声明为单行函数,则需要在函数结束之前包含一个 ;,因此工作函数应该是

function _rungo() { "$GOBIN" "@$1" ;}

编辑:

回答以下问题:

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/$1" 而不是仅仅使用 "$GOBIN""@$1" 会更好。

解决方案

改变

export GOBIN=$HOME/go-workspace/bin
function _rungo() { "$GOBIN" "@$1" }
alias rungo='_rungo'

export GOBIN=$HOME/go-workspace/bin
function rungo() { exec "$GOBIN/$1" ;}

希望这对您有所帮助!

关于linux - 在 .profile 中为函数创建别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40251323/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com