Я пытаюсь использовать bash-скрипт для учебного задания. Как нуб-bash, я попытался адаптировать существующую для своей цели: скомпилировать / создать C-программу с различными аргументами компиляции, выполнить ее и перенаправить вывод в файл.
Сценарий выглядит следующим образом:
#!/bin/bash
EXECUTABLE=./PartitionedHashJoin
OUTFILE=results.txt
for sizelog2 in $(seq 0 20)
do
for buckets in $(seq 2 2048)
do
size=$((1<<$sizelog2))
make clean
make PartitionedHashJoin NUM_RELATION_R=$sizelog2 NUM_BUCKETS=$buckets
echo -n $sizelog2 " " $buckets " " >> $OUTFILE
$EXECUTABLE >> $OUTFILE
done
done
Однако bash выдает ошибку:
...: строка 6: 11927 Недопустимая инструкция: 4 $ EXECUTABLE >> $ OUTFILE
Если я удаляю перенаправление вывода исполняемого файла, то это работает.
Я не понимаю, что я мог неправильно набрать в перенаправлении - в другом примере он работает просто с одним циклом. У Google пока нет предложений о том, что я делаю неправильно.
Кто-нибудь может это заметить?