我想让我的别名获取我在命令行中传递的变量:
例如,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/