while recorrer for elemento buscar bucle asociativo array arrays bash shell while-loop scripting

arrays - recorrer - Una sola línea mientras la matriz de actualización de bucle



recorrer array javascript (1)

El problema está en estas líneas:

${LFT[$i]}=${line:0:1}; ${RGT[$i]}=$(wc -l < temp$i.txt);

Cambiarlo a:

LFT[$i]=${line:0:1}; RGT[$i]=$(wc -l < temp$i.txt);

La asignación válida en shell debe ser:

var=<expression>

más bien que

$var=<expression> ## this will be interpreted by the shell as a command

Este es uno de los errores comunes que los programadores de Bash hacen. Más trampas de Bash aquí.

Estoy intentando construir un bucle while que actualice los valores en una matriz, pero sigo obteniendo un error de comando no encontrado.

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

El archivo del que estoy leyendo contiene un solo dígito en cada línea, y quiero llenar la matriz LFT con cada entrada siendo el dígito. La matriz RGT debe llenarse con los recuentos de línea de los archivos denominados temp * .txt. Y quiero probar para asegurarme de que cada entrada de estas dos matrices sea la misma.

Sin embargo, sigo obteniendo un error: comando = # no encontrado, donde # es cualquier dígito que esté en la línea del archivo. ¿Estoy asignando valores a las matrices incorrectamente? Además, obtengo el error: comando true = false no encontrado. Supongo que esto tiene algo que ver con la asignación de valores al booleano. Gracias