Calcul des expressions mathématiques dans le langage de script de coquille - Partie V

Calcul des expressions mathématiques dans le langage de script de coquille - Partie V

Vous seriez à l'aise, vous comprenez Scripts shell Et les écrire couramment, selon vos besoins. Ceci est le dernier article de cette série de tutoriels, où nous allons effectuer un peu complexe Opérations mathématiques Utilisation du langage de script. Les quatre derniers articles de Script shell série qui sont chronologiquement.

Apprendre la partie de script de coque - V
  1. Comprendre les conseils de langage de script de shell Linux de base - Partie I
  2. 5 SCRIPTS Shell pour les débutants Linux pour apprendre la programmation de Shell - Part II
  3. Navigation dans le monde des scripts Linux Bash - Partie III
  4. Aspect mathématique de la programmation de shell Linux - Partie IV

Commençons par la série Fibonacci

Un modèle de nombres où chaque nombre est la somme de deux nombres précédents. La série est 0, 1, 1, 2, 3, 5, 8… Par définition, les deux premiers nombres du Fibonccai Les séquences sont 0 et 1.

Script 1: Fibonacci.shot
#!/ bin / bash echo "Combien de nombres voulez-vous de la série Fibonacci ?"Lire total x = 0 y = 1 i = 2 echo" série fibonacci jusqu'à $ Terms :: "echo" $ x "echo" $ y "tandis que [$ i -lt $ total] do i =" expr $ i + 1 "z =" expr $ x + $ y "echo" $ z "x = $ y y = $ z fait
Échantillon de sortie
[[Protégé par e-mail] ~] # Chmod 755 Fibonacci.sh [[e-mail protégé] ~] # ./ Fibonacci.sh combien de chiffres voulez-vous de la série Fibonacci ? 10 séries Fibonacci jusqu'à 10 termes :: 0 1 1 2 3 5 8 13 21 34

Télécharger Fibonacci.shot

Vous connaissez le fait que l'ordinateur ne comprend que dans le format binaire, je.e., '0' et '1et la plupart d'entre nous ont aimé apprendre la conversion de Décimal pour Binaire. Que diriez-vous d'écrire un script simple pour cette opération complexe.

Script 2: Decimal2binary.shot
#!/ bin / bash pour ((i = 32; i> = 0; i--)); do r = $ ((2 ** $ i)) probable + = ($ r) fait [[$ # -eq 0]] & echo -en "Decimal \ t \ tbinary \ n" pour input_int dans [e-mail protégé]; do S = 0 test $ # input_int -gt 11 & printf "% -10s \ t" "$ input_int" pour n dans $ probable [@]; faire si [[$ input_int -lt $ n]]; alors [[$ s = 1]] && printf "% d" 0 else printf "% d" 1; s = 1 input_int = $ (($ input_int - $ n)) fi fait echo -e fait
Échantillon de sortie
[[Protégé par e-mail] ~] # CHMOD 755 DECIMAL2BINAL.sh [[e-mail protégé] ~] # ./ Decimal2binary.SH 1121 décimal binaire 1121 10001100001

Note: Le script ci-dessus accepte la entrée au moment de l'exécution, ce qui est évidemment une aide.

Télécharger Decimal2binary.shot

Eh bien, l'intégration 'avant JCLa commande peut convertir un décimal pour binaire Dans un script de ligne unique. Courir, à votre terminal.

[[e-mail protégé] ~] # echo "obase = 2; num" | avant JC

Remplacer 'Nobs'avec le numéro, que vous souhaitez convertir Décimal pour Binaire. Par exemple,

[[e-mail protégé] ~] # echo "obase = 2; 121" | BC 1111001

Ensuite, nous écrire un script qui fonctionne juste en face du script ci-dessus, Conversion des valeurs binaires pour Décimal.

Script 3: Binary2Decimal.shot
#!/ bin / bash echo "Entrez un nombre:" lire binaire si [$ binaire -eq 0] puis écho "entrez un nombre valide" ailleurs tandis que [$ binaire -ne 0] do bnumber = $ binary décimal = 0 puissance = 1 pendant que [$ Binaire -ne 0] do rem = $ (expr $ binary% 10) décimal = $ ((décimal + (rem * puissance))) puissance = $ ((puissance * 2)) binaire = $ (expr $ binaire / 10 ) fait écho "$ décimal" fait fi
Échantillon de sortie
[[Protégé par e-mail] ~] # Chmod 755 Binary2Decimal.sh [[e-mail protégé] ~] # ./ Binary2decimal.sh Entrez un nombre: 11 3

Note: La fonction ci-dessus peut être effectuée en terminal en utilisant 'avant JC'commandement comme.

[[e-mail protégé] ~] # echo "ibase = 2; binaire" | avant JC

Remplacer 'BINAIRE'Avec le numéro binaire, à savoir.,

[[e-mail protégé] ~] # echo "ibase = 2; 11010101" | BC 213

Télécharger binary2decimal.shot

De même, vous pouvez écrire une conversion à partir de octal, hexadécimal pour décimal Et vice-versa vous-même. Accomplir le résultat ci-dessus dans le terminal en utilisant 'avant JC'La commande est.

Décimal à octal
[[e-mail protégé] ~] # echo "obase = 8; décimal" | avant JC
Décimal à hexadécimal
[[e-mail protégé] ~] # echo "obase = 16; décimal" | avant JC
Octal à décimal
[[e-mail protégé] ~] # echo "ibase = 8; octal" | avant JC
Hexadécimal à décimal
[[e-mail protégé] ~] # echo "ibase = 16; hexadecimal" | avant JC
Binaire à octal
[[e-mail protégé] ~] # echo "ibase = 2; obase = 8 binaire" | avant JC

Certains Numérique commun Les tests utilisés dans le langage de script shell avec description sont.

Test: Integer1 -eq Integer2 Signification: Integer1 est égal à Integer2
Test: Integer1 -ge Integer2 Signification: Integer1 est supérieur ou égal à Integer2
Test: Integer1 -gt Integer2 Signification: Integer1 est supérieur à Integer2
Test: Integer1 -le Integer2 Signification: Integer1 est inférieur ou égal à Integer2
Test: Integer1 -lt Integer2 Signification: Integer1 est inférieur à Integer2
Test: Integer1 -ne Integer2 Signification: Integer1 n'est pas égal à Integer2

C'est tout pour cet article et la série d'articles. Ceci est le dernier article de Shell Script Series Et cela ne signifie pas qu'aucun article sur le langage des scripts ne sera à nouveau ici, cela signifie seulement que le tutoriel de script de coquille n'est terminé et chaque fois que nous trouvons un sujet intéressant qui mérite d'être connu ou une question de vous, nous serons heureux de continuer la série de la série à partir de ici.

Rester en bonne santé, réglé et connecté à Tecmint. Très bientôt, je viendrai avec un autre sujet intéressant, vous adorerez lire. Partagez vos précieuses pensées dans Section commentaire.