Comment faire des calculs décimaux en bash en utilisant la Colombie-Britannique

Comment faire des calculs décimaux en bash en utilisant la Colombie-Britannique

Des calculs décimaux sont parfois nécessaires à Bash. L'idiome de programmation de bash de calcul standard ($ []) n'est pas en mesure de fournir une sortie décimale. Bien que nous puissions le tromper dans le calcul (mais ne pas générer) une sortie décimale en multipliant les nombres par par exemple un facteur de 1000 puis en faisant une division basée sur le texte, il s'agit d'une solution de contournement laide et crée un code complexe. Il existe cependant une utilité en bash qui peut nativement des calculs décimaux sans aucune astuce ni solution de contournement!

Dans ce tutoriel, vous apprendrez:

  • Comment utiliser la Colombie-Britannique pour effectuer des calculs décimaux
  • Comment faire des calculs décimaux sur la ligne de commande bash ou à partir de vos scripts
  • Comment utiliser des variables pour stocker les résultats produits par la Colombie-Britannique
  • Comment utiliser les variables dans d'autres calculs
  • Comment éviter les erreurs de citation variable de bash
Comment faire des calculs décimaux en bash en utilisant la Colombie-Britannique

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Indépendant de la distribution Linux
Logiciel Ligne de commande bash, système basé sur Linux
Autre Toute utilité qui n'est pas incluse dans le shell bash par défaut peut être installée en utilisant Sudo Apt-Get Install Utility-Name (ou Installation de miam pour les systèmes basés sur Redhat)
Conventions # - nécessite que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - exige que les commandes Linux soient exécutées en tant qu'utilisateur régulier non privilégié

Installation de BC

Pour installer BC sur Ubuntu, Mint ou tout autre système d'exploitation basé sur Debian / APT, Type:

$ sudo apt install bc 


Pour installer BC sur Fedora, Redhat ou tout autre système d'exploitation basé sur Redhat / Yum, Type:

$ sudo yum install bc 

Calculs de bash par défaut

Nous pouvons faire un problème de division simple directement dans Bash:

$ echo $ [13/4] 3 

Cela essaie et divise 13 par 4 en utilisant l'idiome bash standard $ [calcul]. Bien que ce soit assez polyvalent:

$ echo "1 + 1? La réponse est: $ [1 + 1] "1 + 1? La réponse est: 2 

Il est malheureusement incapable de produire des décimales. Les solutions de contournement de ce problème sont complexes et laides comme décrit précédemment.

BC à la rescousse

Une solution plus élégante consiste à utiliser avant JC Pour les calculs.

Tandis que la Colombie-Britannique peut également être utilisée pour les mêmes calculs que possible dans Bash:

$ echo '13 / 4 '| BC 3 


Il est également en mesure de produire des résultats basés sur des décimaux en utilisant le -l (-l définit l'option de la bibliothèque mathématique standard) avant JC:

$ echo '13 / 4 '| BC -L 3.250000000000000000 

Stocker les résultats comme variables

Nous pouvons également stocker les résultats en tant que variable en utilisant une sous-coquille:

$ Résultat = $ (echo '13 / 4 '| bc -l) $ echo $ résultat 3.250000000000000000 

Ici, nous avons utilisé le même calcul que dans le dernier exemple, mais nous avons utilisé une sous-coquille $ () Pour faire le calcul. Cela nous permet de stocker facilement le résultat dans une variable. Nous pouvons maintenant utiliser cette variable plus loin dans d'autres calculs, ou simplement sortir le résultat comme indiqué ci-dessus. Pour l'utiliser dans un autre calcul, vous pouvez:

$ echo "$ résultat * 4" | BC -L 13.00000000000000000000 

Veuillez noter comment nous avons utilisé les doubles citations cette fois pour définir notre arithmétique. La raison en est que nous voulons le $ Résultat variable à substituer à sa valeur réelle. Si nous avions utilisé des citations simples (') Au lieu de cela, l'opération aurait échoué car le nom de la variable aurait été considéré comme une entrée littérale. En d'autres termes, aucune substitution à sa valeur ne se serait produite, comme nous pouvons le voir sur la sortie suivante:

$ echo '$ résultat * 4' | BC -L (standard_in) 1: caractère illégal: $ (standard_in) 1: erreur de syntaxe 

Prêt à en savoir plus bash? Explorez nos séries de conseils et de trucs de ligne de commande Bash utiles!

Conclusion

Dans cet article, nous avons exploré comment faire des calculs décimaux avec avant JC sur la ligne de commande. Les mêmes commandes fonctionnent bien lorsqu'elles sont utilisées à partir d'un script shell. Nous avons également examiné les lacunes de l'utilisation des idiomes de calcul de bash standard, ainsi que l'utilisation de variables en combinaison avec avant JC Utilisation des sous-coquilles. Enfin, nous avons découvert ce qui se passe si l'on cite incorrectement les variables dans Bash.

Tutoriels Linux connexes:

  • Ubuntu 20.04 astuces et choses que vous ne savez peut-être pas
  • Conseils de commande de commande de bash utile et exemples de trucs - Partie 3
  • Conseils de ligne de commande bash utiles et exemples de trucs - Partie 1
  • Bash Idioms variables avancées pour la sensibilité à la caisse…
  • Exemples de lignes de commande de commande de bash utile - Partie 4
  • Conseils de commande de commande de bash utile et exemples de trucs - Partie 2
  • Conseils de commande de commande de bash utile et exemples de trucs - Partie 5
  • Comment persister les données à PostgreSQL à Java
  • Gestion des processus de fond de bash
  • Bases de mathématiques informatiques: binaire, décimal, hexadécimal, octal