Я пытаюсь выполнить расчет, используя 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.