Linux 在alias中设置变量无效

Linux 在alias中设置变量无效,linux,bash,alias,Linux,Bash,Alias,我希望我的别名拾取我在命令行中传递的变量: 例如,startdocker 004应执行以下操作 docker run -d -t -p 8080:8080 -v /var/source:/source -P mydockerregistry:5000/foo/bar:004 (004是我在命令行中传递的标记) 我在我的.bashrc中尝试了以下内容(在更改后源代码) 当我运行startdocker 004时,它没有拾取004。 它为空,因此默认为docker的“最新” 正确的方法是什么?我做错

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

例如,
startdocker 004
应执行以下操作

docker run -d -t -p 8080:8080 -v /var/source:/source -P mydockerregistry:5000/foo/bar:004
(004是我在命令行中传递的标记)

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

当我运行
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; }

哦,可能是我表达得不对。我要执行那个命令。我试过了。它不起作用。我没有得到这样的文件或目录。我还尝试用uptick`替换我的双引号,这样它就可以执行了。但确实如此not@brainstorm不要在函数中添加双引号、反勾号或任何其他内容。它应该是
函数startdocker(){docker run-d…$1;}
的可能重复项
function startdocker(){ docker run -d -t -p 8080:8080 -v /var/source:/source -P mydockerregistry:5000/foo/bar: $1; }