Так что я пытаюсь перебрать столбцы в файле, чтобы найти среднюю и среднюю ... Цикл работает нормально, но когда я добавляю временный файл (для при использовании стандартного ввода для указания файла), он выдает ошибку:bash- синтаксическая ошибка: операнд ожидается - возникает после создания временного файла
((: i<: syntax error: operand expected (error token is "<")
Это цикл: for ((i=$colIndex;i<$numCols;i++))
Создание файла TEMP: cat - > temp
EDIT:
Полный код STDIN:
if [[ $# -eq 2 ]]
then
fileName=$2
#file name was not given
elif [[ $# -eq 1 ]]
then
#file name comes from the user
fileName=/dev/stdin
cat - > temp
#incorrect number of arguments
else
echo "Usage: stats {-rows|-cols} [file]"
exit 1
fi
код, чтобы получить число столбцов ($ numCols):
#get number of columns
while read -a cols
do
numCols=0
for i in "${cols[@]}"
do
numCols=`expr $numCols + 1`
done
#only need one row
break
done < "${2:-/dev/stdin}"
Любая помощь будет здорово, спасибо!
Показать скрипт с этими линиями в контексте относительно друг друга? –
Они arent действительно относительно друг друга. Без кода 'cat -> temp' ошибка исчезнет, и ошибка вернется. – NateDawg87
для ((i = 1; i <; i ++)); do echo yes, done bash: ((: i <: синтаксическая ошибка: предполагается, что операнд (токен ошибки «<») $ numCols имеет значение null. – Lizardx