在 bash 别名中指定 gcc 输出文件名

Specifying gcc output file name in a bash alias

我已经开始使用 ncurses 学习 C,并且想让编译命令少一些冗长的输入。以下是我正在使用的完整命令。

gcc example.c -o example -lncurses

我想做的是制作一个 bash 别名来满足上述要求,但只需输入,比如...

gcc_alias example.c

我对 bash 一点经验都没有,但是有没有可能在我的 .bashrc 中做一个小小的单行别名来完成这个?

我自己尝试过,我能想到的最好的是:

gcc_alias="gcc  -o ____ -lncurses"

显然 ____ 是我无法弄清楚的部分。

我一直在寻找答案,但未能找到足够相似的问题。 干杯。

这不能用别名来完成(别名是严格的文本替换)。您可以像这样使用 shell 函数:

gcc_alias() { gcc -o "${1%.*}" "" -lncurses; }

被称为

gcc_alias example.c

这里${1%.*}是一个参数展开,从</code>.</p>中去掉匹配<code>.*的最短后缀

说真的,为了使编译易于管理,您需要看一下 makefiles