我尝试使用 bash 创建一个 makefile,并使用以下行
echo "OBJS = $(ls *.c | sed -r 's/.c\n/.o\s/g')" >> makefile
我希望它打印该行:
OBJS = foo.o bar.o
对于文件foo.c
和bar.c
我的工作目录,但我得到了
OBJS = foo.c
bar.c
我不是sed
专家,所以我想我做错了。有人可以帮我一下吗?
答案1
使用数组和参数扩展:
files=(*.c)
echo OBJ = "${files[@]/%.c/.o}"