Quiero acumular el tamaño de línea de varios archivos contenidos en una carpeta. He escrito el siguiente script:
let a=0
let num=0
for i in folder/*
do
num=`cat $i | wc -l`
a=$a+$num
done
echo $a
Lo que obtengo al final del script es 123 + 234 + 432 + ... y no el resultado de la operación aritmética de la suma.
shell
shell-script
arithmetic
curioso
fuente
fuente

$interior((...)).a=$((a+num))Ya está bien.también puedes usar este código
y ASEGÚRESE DE QUE HAY UN ESPACIO EN AMBOS LADOS DE + EN "$ a + $ num"
fuente
Primero puede declarar el tipo de variable:
fuente
Lo sentimos, la edición anterior fue para una publicación diferente. Aquí, solo una pequeña modificación al script original:
dejar a = 0 dejar num = 0 para i en la carpeta / * hacer num = `gato $ i | wc -l` a = $ (echo $ a + $ num | bc) hecho echo $ afuente
La respuesta debe especificar en qué shell es válido el código. Por ejemplo, en el bourne Shell (
sh) solo son válidas las siguientes instrucciones:mientras que las otras posibilidades enumeradas por @manatwork pueden ser válidas en bourne nuevamente shell (
bash)fuente
lo hago asi
fuente