GNU/Linux >> Tutoriales Linux >  >> Linux

Obtenga el número entero del techo del número en Linux (BASH)

Llame a un lenguaje de secuencias de comandos con una función ceil. Dado $NUMBER :

python -c "from math import ceil; print ceil($NUMBER/500.0)"

o

perl -w -e "use POSIX; print ceil($NUMBER/500.0), qq{\n}"

¿Por qué utilizar lenguajes de script externos? Obtienes piso por defecto. Para obtener ceil, haz

$ divide=8; by=3; (( result=(divide+by-1)/by )); echo $result
3
$ divide=9; by=3; (( result=(divide+by-1)/by )); echo $result
3
$ divide=10; by=3; (( result=(divide+by-1)/by )); echo $result
4
$ divide=11; by=3; (( result=(divide+by-1)/by )); echo $result
4
$ divide=12; by=3; (( result=(divide+by-1)/by )); echo $result
4
$ divide=13; by=3; (( result=(divide+by-1)/by )); echo $result
5
....

Para tener en cuenta los números negativos, puede reforzarlo un poco. Probablemente formas más limpias, pero para empezar

$ divide=-10; by=10; neg=; if [ $divide -lt 0 ]; then (( divide=-divide )); neg=1; fi; (( result=(divide+by-1)/by )); if [ $neg ]; then (( result=-result )); fi; echo $result
-1

$ divide=10; by=10; neg=; if [ $divide -lt 0 ]; then (( divide=-divide )); neg=1; fi; (( result=(divide+by-1)/by )); if [ $neg ]; then (( result=-result )); fi; echo $result
1

(Editado para cambiar let ... a (( ... )) .)


Linux
  1. ¿Cómo obtener la cantidad de CPU en Linux usando C?

  2. ¿Cómo puedo obtener valores únicos de una matriz en Bash?

  3. Obtenga la fecha de ayer en bash en Linux, DST-safe

  4. ¿Cómo obtener el nombre de host de IP (Linux)?

  5. C++ Obtener una cadena del Portapapeles en Linux

Wikit:obtenga resúmenes de Wikipedia desde la línea de comandos en Linux

Cómo obtener noticias al instante desde la línea de comandos en Linux

Cómo obtener la cantidad de procesadores/núcleos en Linux

Linux:¿cambiar el número de la partición de Sda1 a Sda2?

Shell/Bash Script para encontrar números primos en Linux

¿Cómo obtener elementos de la lista en bash?