La única calculadora que conozco es bc
. Quiero agregar 1
a una variable y salida a otra variable.
Obtuve la nextnum
variable al contar la cadena en un archivo:
nextnum=`grep -o stringtocount file.tpl.php | wc -w`
Digamos que el nextnum
valor es 1
. Cuando se agrega con 1
, se convertirá 2
. Para calcular, corro:
rownum=`$nextnum+1 | bc`
pero tengo error:
1+1: command not found
Simplemente fallé en la parte de cálculo. Intenté cambiar el backtick pero aún no funciona. No tengo idea de cómo calcular variables y enviarlas a otra variable.
shell
arithmetic
bc
calculator
apasajja
fuente
fuente
Respuestas:
La subcadena dentro del
` `
debe ser un comando válido en sí mismo:Pero es preferible usar en
$( )
lugar de` `
:Pero no es necesario
bc
, el shell puede hacer aritmética de enteros :O incluso más simple en
bash
yksh
:fuente
También puede usar aritmética integrada en bash:
que sería un poco más rápido
fuente
Absolutamente correcto y completar las soluciones sugeridas, solo para mencionar la forma en que se debe hacer en épocas anteriores cuando solo estaba disponible el Bourne-Shell, así es como le gusta:
fuente
Yo usaría (como se mencionó anteriormente)
rownum=$((nextnum+1))
o,((rownum=nextnum+1))
pero si prefiere un comando estándar, puede usar el comando let, comolet rownum=$nextnum+1
fuente
let
un "comando estándar" es muy engañoso.$((…))
es la sintaxis estándar (POSIX) mientras quelet
es una extensión ksh (y bash, zsh).