Я пытаюсь построить цикл while, который обновляет значения в массиве, но я продолжаю получать команду, не найденную ошибку.Однострочный цикл обновления цикла
i=1
bool=true
declare -a LFT
declare -a RGT
while read -r line; do
${LFT[$i]}=${line:0:1}; ${RGT[$i]}=$(wc -l < temp$i.txt);
if [ ${LFT[$i]} -ne ${RGT[$i]} ]; then
$bool=false;
fi;
((i=i+1));
done<output2.txt
Файл Читаю из содержит одну цифру в каждой строке, и я хочу, чтобы заполнить массив LFT с каждой записи является цифрой. Массив RGT должен быть заполнен количеством строк файлов, обозначенных temp * .txt. И я хочу проверить, чтобы каждая запись этих двух массивов была одинаковой.
Однако я все равно получаю сообщение об ошибке: command = # not found, где # - какая-либо цифра находится в строке в файле. Я неправильно присваиваю значения массивам? Кроме того, я получаю ошибку: команда true = false не найдена. Я предполагаю, что это имеет какое-то отношение к присвоению значений булевому. Благодаря
Вау, это было такое простое исправление. Спасибо –
Есть ли способ отладки, чтобы узнать, где лежат проблемы, или вы просто знаете по опыту? –
Некоторые из этих вещей приходят с практикой. Тем не менее, вы всегда можете передать свой код через http://www.shellcheck.net/ - это замечательный инструмент. И SO - прекрасное место для изучения Bash, среди многих других вещей. – codeforester