Я пытаюсь создать сценарий bash, который выполняет арифметическую операцию, которая вызывает переменные из массива, однако программа продолжает выбрасывать синтаксические ошибки.
Вот код:
#! /system/bin/bash
#Declaring y, L and T
declare -a y=()
declare -a L=()
declare -a T=()
y=(1 2 3 4 5 6)
L[1]=12
T[1]=5
#Finding all Levels of (L) sub t
ycount=$(( ${#y[@]} + 1 ))
begin=1
counter=2
while [ $begin -lt $ycount ]
do
L[$counter]=$( echo "($alpha * ${y[$begin]}) + ((1 - $alpha) *(${L[$begin]} + ${T[$begin]}))" | bc -l)
begin=$(( $begin + 1 ))
counter=$(( $counter + 1 ))
done
Это происходит, когда вы запускаете код:
$ bash /tmp/test.sh
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
(standard_in) 1: syntax error
Я почти уверен, что ошибка в вызовах L [$ begin] и T [$ begin], как при замене чисел на эти переменные.больше не получает синтаксическую ошибку.