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

时间:2016-01-08 19:22:34

标签: linux bash alias

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

例如,startdocker 004应执行以下

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

(004是我在commandLine中传递的标签)。

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

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

当我运行startdocker 004时,它没有拿起004。 它是空的,因此默认为"最新的"通过码头工人。

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

由于

修改

我不想回应但是执行命令。

下面提供了正确的答案

1 个答案:

答案 0 :(得分:2)

没有理由将函数放在别名中。只是做

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

这现在适用于我的系统:

$ 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: $1; }