Quero acumular o tamanho da linha de vários arquivos contidos em uma pasta. Eu escrevi o seguinte script:
let a=0
let num=0
for i in folder/*
do
num=`cat $i | wc -l`
a=$a+$num
done
echo $a
O que estou obtendo no final do script é 123 + 234 + 432 + ... e não o resultado da operação aritmética de adição.
shell
shell-script
arithmetic
curioso
fonte
fonte
$
interior((...))
.a=$((a+num))
já está bem.você também pode usar esse código
e verifique se existe um espaço nos dois lados de + em "$ a + $ num"
fonte
Você pode declarar o tipo de variável primeiro:
fonte
A edição anterior foi para uma postagem diferente. Aqui, apenas uma pequena modificação no script original:
fonte
A resposta precisa especificar em qual shell o código é válido. Por exemplo, no bourne Shell (
sh
), apenas as seguintes instruções são válidas:enquanto as outras possibilidades listadas por @manatwork podem ser válidas em bourne again shell (
bash
)fonte
eu faço assim
fonte