在别名中设置变量不起作用

setting up variables in alias is not working

我希望我的别名能够获取我在命令行中传递的变量:

例如startdocker 004应该执行下面的

docker run -d -t -p 8080:8080 -v /var/source:/source -P mydockerregistry:5000/foo/bar:004

(004 是我在命令行中传递的标签)。

我在我的 .bashrc 中尝试了以下内容(更改后的来源)。

alias startdocker='function dockerStartTag(){ echo "docker run -d -t -p 8080:8080 -v /var/source:/source -P mydockerregistry:5000/foo/bar: ";};dockerStartTag'

当我运行startdocker 004时,它没有接听004。 它是空的,因此默认为 "latest" by docker.

正确的做法是什么?我做错了什么?

谢谢

编辑

我不想回显而是执行命令。

正确答案如下

没有理由将函数放在别名中。就这样

function startdocker(){ echo "docker run -d -t -p 8080:8080 -v /var/source:/source -P mydockerregistry:5000/foo/bar: "; }

这现在可以在我的系统上运行:

$ startdocker 004
docker run -d -t -p 8080:8080 -v /var/source:/source -P mydockerregistry:5000/foo/bar: 004

要真正 运行 它,我们只需要:

function startdocker(){ docker run -d -t -p 8080:8080 -v /var/source:/source -P mydockerregistry:5000/foo/bar: ; }