Bash 别名参数

Thi*_*Tao 6 bash alias

可能的重复:
如何将参数传递给别名?

我正在尝试创建一个 bash 别名,以便我快速创建当前 git 存储库的存档。

我现在的别名是:

alias gitarch="git archive master --format=tar | gzip >$@"

如果我提供一个完全相同的目标文件,这很好用,gitarch ~/Desktop/MyArchive.tar.gz但我希望能够只输入一个文件名,并且它总是以 tar.gz 扩展名保存到桌面。我试着做:

alias gitarch="git archive master --format=tar | gzip >~/Desktop/$@.tar.gz"

...但它似乎无法正常工作。

谁能告诉我让这个工作的秘诀?

小智 10

秘诀只是创建一个bash函数 - 别名不支持位置参数替换:

gitarch() { git archive master --format=tar | gzip >"$1"; }
Run Code Online (Sandbox Code Playgroud)

  • @D4RIO 没问题,只需使用`set` 列出函数或`type`。 (2认同)