как сложить два числа вместе с помощью bash

He tenido problemas con este requisito exacto y, al final, no pude encontrar una solución simple. Lo que terminé haciendo en su lugar fue esto:

TMPFILE=/tmp/$$.log
myCommand > $TMPFILE 2>&1
[ $? != 0 ] && cat $TMPFILE
date >> myCommand.log
cat $TMPFILE >> myCommand.log
rm -f $TMPFILE

Agrega stdout y stderr, en el orden intercalado adecuado, al archivo de registro. Y si ocurriera algún error (según lo determinado por el estado de salida del comando ), envía la salida completa (stdout y stderr )a stdout, nuevamente en el orden intercalado correcto. Encontré que esto es un compromiso razonable para mis necesidades. Si desea un único archivo de registro de ejecución -en lugar de uno de ejecución múltiple -creciente, es aún más simple:

myCommand > myCommand.log 2>&1
[ $? != 0 ] && cat myCommand.log
1
14.03.2018, 21:30
1 ответ

Вы можете легко выполнять математические операции в awk. Вот пример:

awk '{ total+=$1 } END { print total }'

Если вы действительно хотите использовать bash, вы можете использовать простой цикл, чтобы читать по одной строке за раз и добавлять ее:

count=0 
while read -r number _; do # put the first column in "number" and discard the rest of the line
    count=$(( count + number )) 
done < /tmp/foo
echo $count
5
28.04.2021, 23:49

Теги

Похожие вопросы