我想加快使用别名在 C 中编译文件所需的时间。
这是我的别名:
alias gccp="gcc -pendantic -Wall -ansi '$1'.c -o '$1'"
我尝试 gccp p1 并期望它运行命令gcc -pendantic -Wall -ansi p1.c -o p1
。
我究竟做错了什么?
别名不能有参数;在你的情况下,1 美元什么都不是。您需要创建一个执行此操作的函数并将其导出。
编辑:
我犯了一个错误。参数在 bash 别名中是可能的,但它们是在创建别名时分配的,而不是在调用别名时分配的。因此,为了实现您想要的功能,请在您的 .bashrc 文件中添加此功能并重新启动 bash。
function gccp()
{
gcc -pendantic -Wall -ansi $1.c -o $1
}
甚至进一步编辑
这完全取决于你所说的论点。例如,如果我在.bashrc
文件中添加以下内容并重新启动 bash
alias blabla="echo $HOSTNAME"
然后我调用blabla
我得到我的主机名。但是 $HOSTNAME 并不是一个真正的论点。这是一个变量。一个参数意味着您正在为您正在调用的函数/命令提供某种信息。因此,根据该定义,别名不带参数。
改为使用make
。
$ export CFLAGS=-pendantic -Wall -ansi
$ make p1
make
将使用其内置的模式匹配规则来做你想做的事。
如果使用环境变量以不希望的方式与其他事物交互,请将CFLAGS
值直接传递给,make
或者编写一个定义CFLAGS
.