我想让我的别名获取我在命令行中传递的变量:
例如,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: $1";};dockerStartTag'

当我运行startdocker 004时,它不会接收004。
它是空的,因此docker默认为“最新”。
正确的方法是什么?我做错什么了?
谢谢
编辑
我不想回音而是执行命令。
正确答案如下

最佳答案

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

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; }

关于linux - 在别名中设置变量不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34684522/

10-12 18:53