-9
В этом коде оболочки я понятия не имею, почему всегда говорят, что у меня синтаксическая ошибка, и я использую эту функцию для вычисления среднего и среднего числа строк.Почему всегда говорится о синтаксической ошибке в моем коде?
rows()
{ echo -e "Average:\tMedian:";
while read line
do
array=($line)
lineavg=0;
linemed=0;
medpos=0;
for((i=0;i<${#array[@]};i++))
do
let "lineavg+=${array[$i]}"
done
cols=${#array[@]}
let "lineavg=$lineavg+($cols/2)"
let "$lineavg/=$cols"
let "medpos=($cols/2)"
sorted=($(printf '%s\n' "${array[@]}"| sort -g))
if [ $((cols%2)) -eq 0 ]; then
let "medpos--"
if [[ "array[$medpos]"<"array[medpos+1]" ]]; then
let "medpos++"
fi
fi
let "linemed=${sorted[$medpos]}"
echo -e $lineavg '\t\t' $linemed
done<$inputfile
}
*** Где *** это у вас есть ошибка синтаксиса? Попробуйте создать [mcve]. –
он говорит между строкой «cols = $ {# array [@]}» и пусть «medpos = ($ cols/2)» – Snowlifelover
Показать ** точный ** выход ошибки при запуске этой функции. Является ли это 'bash' или'/bin/sh' или какой-либо другой оболочкой? –