Linux 自定义bash通配符扩展

Linux 自定义bash通配符扩展,linux,bash,Linux,Bash,如果我这样做 *.c 它将返回以.c结尾的文件列表,并用空格分隔。但是,我希望它返回一个文件列表,前缀为#include“,后缀为”\n e、 g.产出 #include "blah.c" #include "meh.c" #include "hehe.c" 我想通过管道将结果传输到gcc-xc-中,因此,如果该命令是一行程序,则会获得额外的点数 (不,我不想只是cat*.c,因为它会丢失源位置信息)可能类似于 for f in *.c ; do printf '#include "%s"

如果我这样做

*.c

它将返回以
.c
结尾的文件列表,并用空格分隔。但是,我希望它返回一个文件列表,前缀为
#include“
,后缀为
”\n

e、 g.产出

#include "blah.c"
#include "meh.c"
#include "hehe.c"
我想通过管道将结果传输到
gcc-xc-
中,因此,如果该命令是一行程序,则会获得额外的点数

(不,我不想只是
cat*.c
,因为它会丢失源位置信息)

可能类似于

for f in *.c ; do
  printf '#include "%s"\n' $f
done | gcc -xc -
你应该做你想做的事

但是,
gcc
接受多个源文件,因此您可以只执行以下操作

gcc -Wall *.c -o yourprog -lyourlibrary
您还可以将
-g-O-flto
传递给
gcc

或者类似的东西

for f in *.c ; do
  printf '#include "%s"\n' $f
done | gcc -xc -
你应该做你想做的事

但是,
gcc
接受多个源文件,因此您可以只执行以下操作

gcc -Wall *.c -o yourprog -lyourlibrary

您还可以将
-g-O-flto
传递到
gcc

我没有测试这个,但这可能会做到


对于*.c中的a;echo'包括“$a”吗;完成了| gcc-xc-

我没有测试这个,但是这个可能可以

对于*.c中的a;echo'包括“$a”吗;完成| gcc-xc-

有一个更简单的方法:

printf '#include "%s"\n' *.c
有一个更简单的方法:

printf '#include "%s"\n' *.c

太好了,这就成功了。使用gcc的多源文件有点不同,因为它单独编译所有文件,这意味着它会一次又一次地浪费大量时间来处理相同的头文件。(另外我也不太相信-flto)如果你的
*.c
文件都是
#include
-ing相同的公共
header.h
,你可以用
gcc-header.h-o header.h.gch
预编译它;而且我不认为解析头文件对于C代码来说是一个巨大的时间(对于C++代码来说可能是这样)。您可以使用
-ftime report
程序参数
gcc
来查找。而且
-flto
与GCC4.7配合得很好!太好了,这就成功了。使用gcc的多源文件有点不同,因为它单独编译所有文件,这意味着它会一次又一次地浪费大量时间来处理相同的头文件。(另外我也不太相信-flto)如果你的
*.c
文件都是
#include
-ing相同的公共
header.h
,你可以用
gcc-header.h-o header.h.gch
预编译它;而且我不认为解析头文件对于C代码来说是一个巨大的时间(对于C++代码来说可能是这样)。您可以使用
-ftime report
程序参数
gcc
来查找。而且
-flto
与GCC4.7配合得很好!太好了,谢谢,这就成功了。然而,当巴兹尔以一分钟的优势击败你时,我把这个问题交给了他:DGreat,谢谢,这真的很管用。然而,当巴兹尔以一分钟的优势击败你时,我向他提出了一个问题:非常好。像这样的东西正是我所希望的。非常好。这正是我所希望的。