别名 - 能够传递参数?

Rya*_*nLC 3 command-line bash alias

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

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

clang -ggdb -std=c99 -Wall -Werror   program1.c -lcrypt -lcs50 -lm -o program1
Run Code Online (Sandbox Code Playgroud)

对于那些上过哈佛 CS50 课程的人,你会认为这是他们的make命令。因此,如果以上是不可能的,并且您知道另一种方法来实现这一点,那么我全神贯注。我试图避免使用他们的 VM,因为我的上网本并不能真正达到处理 VM 的标准。

Jan*_*ary 6

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

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

(如果愿意,您可以将所有内容放在一行中,只需注意命令末尾的分号)

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

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