别名-能够传递参数吗?

别名-能够传递参数吗?

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

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

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

对于那些上过哈佛大学 CS50 课程的人来说,你会认出这是他们的make命令。所以如果上述方法不可行,而你知道另一种方法可以实现这一点,我洗耳恭听。我尽量避免使用他们的 VM,因为我的上网本还不足以处理 VM。

答案1

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

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

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

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

但也许您真正需要的是 Makefile?

相关内容