别名 – 能够传递参数吗?

我想在我的.bashrc或.bashrc_aliases文件中创建一个别名(可能是后者)。 具体来说,我想调用我正在编写的* .c文件的clang命令。 如果我提供一个例子,我最想总结的是:

我编写了program1.c我希望能够键入(在终端中) compile program1 ,并且应该实际运行以下内容:

 clang -ggdb -std=c99 -Wall -Werror program1.c -lcrypt -lcs50 -lm -o program1 

对于那些参加过Harvard CS50课程的人来说,你会认识到这是他们的make命令。 所以,如果上述情况不可能发生,并且您知道另一种方法可以实现这一目标,那我就听见了。 我正在努力避免使用他们的虚拟机,因为我的上网本并不能真正达到处理虚拟机的标准。

不,您不能将参数传递给别名。 但是你可以定义一个函数:

 compile() { clang -ggdb -std=c99 -Wall -Werror ${1}.c -lcrypt -lcs50 -lm -o $1 ; } 

(如果你愿意,你可以将它全部放在一行中,只需记住命令末尾的分号)

这将按预期工作,并且是推荐的习惯用法,应该替换别名,除了琐碎的目的。

但也许你真正需要的是一个Makefile?