GNU/Linux >> Tutoriels Linux >  >> Linux

Obtenir un entier plafond à partir d'un nombre sous Linux (BASH)

Appel à un langage de script avec une fonction ceil. Donné $NUMBER :

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

ou

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

Pourquoi utiliser des langages de script externes ? Vous obtenez l'étage par défaut. Pour obtenir ceil, faites

$ 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
....

Pour prendre en compte les nombres négatifs, vous pouvez le renforcer un peu. Des moyens probablement plus propres, mais pour les débutants

$ 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

(Modifié pour changer let ... à (( ... )) .)


Linux
  1. Obtenir le chemin complet depuis le script Bash ?

  2. Comment obtenir le nombre de CPU sous Linux en utilisant C ?

  3. Comment puis-je obtenir des valeurs uniques à partir d'un tableau dans Bash ?

  4. Obtenez la date d'hier dans bash sous Linux, DST-safe

  5. comment obtenir des éléments de la liste en bash?

Wikit - Obtenez des résumés de Wikipedia à partir de la ligne de commande sous Linux

Comment obtenir des nouvelles instantanément à partir de la ligne de commande sous Linux

Comment obtenir le nombre de processeurs/cœurs sous Linux

Script Shell/Bash pour trouver des nombres premiers sous Linux

Comment obtenir le nombre de disques physiques sous Linux ?

Comment obtenir un masque de réseau à partir de bash ?