在别名中设置变量不起作用
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: ; }
我希望我的别名能够获取我在命令行中传递的变量:
例如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: ; }