Ошибка при попытке использовать bc в сочетании с выходом октавы - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь выполнить расчет, используя bc, как вы можете видеть ниже.

Вторая переменная (var2), однако, является выводом файла .m с использованием октавы и имеет формат -1.23456

Первая переменная имеет формат 1.234. При попытке выполнить расчет я получаю ошибку:

(standard_in) 1: illegal character: ^[
(standard_in) 1: syntax error
(standard_in) 1: illegal character: ?

Можно изменить значение var2 вручную, и тогда оно заработает. Но это не то, что я ищу. Я думаю, что это проблема с типом переменной, возвращаемой из октавы.

Как я могу решить это?

РЕДАКТИРОВАТЬ: Пытался записать значение в файл и прочитать его обратно. Но тоже не работает (та же ошибка, что и выше)!

РЕДАКТИРОВАТЬ: MCVE

Файл test.sh выглядит следующим образом.

#!/bin/bash
function postprocessing(){                
##doing some postprocessing stuff here, this function already exists.
var2=$(octave evaluation.m)
}
##this is the part i want to edit
read var1 

postprocessing

Diff=$(echo "${var1}-(${var2})" | bc)
##depending on the result of $Diff, do some stuff here
echo $Diff

Файлvaluation.m выглядит так:

##calculate var2 here, this file already exists too.
var2=1-2.34567;
printf("%i\n",var2)  ##but also tried %f, %s

Я запускаю скрипт из терминала.

bash test.sh

или

./test.sh

Я использую GNU Octave 4.2.0.

...