Обойти запутанность арифметики плавающей точки оболочки, почему бы не использовать Perl? Вот острота, чтобы сделать это:
C=3 perl -ne 'printf "%.2f\n",$_/$ENV{C}' your_file
Гигантский ответ на этот вопрос может также быть интересен Вам.
С помощью GNU Make:
objects := $(patsubst %.c,%.o,$(wildcard *.c))
all : $(objects)
Смотрите info make
или pinfo make
и ищите функции wildcard
и patsubst
для более подробной информации. В зависимости от вашего дистрибутива, вам может понадобиться сначала установить пакет make-doc
(или аналогичный), чтобы получить полную make
документацию.
Вам нужно убрать $
. В make
это делается с помощью $$
. Ваша строка должна выглядеть так:
TARGETS = $(shell ls *.c | sed "s/\.c$$//g")
Хотя эта строка отвечает на вопросы напрямую, решение @cas кажется лучше.