İfade ve hesapla komutu: Terminalde matematiksel ifadeleri çözün

Ben her zaman komut dosyaları programlayanlardanım darbe günlük durumları çözmek için (AP / Router şifresini kırın, işlemleri otomatikleştirin vb.).

Bazı durumlarda, bir matematiksel ifadenin değerini bir değişkene atama veya basitçe matematiksel ifadelerle çalışma ihtiyacını gördüm, orada kendimi bash ve matematiksel ifadelerin, hesaplamaların pek dostane olmadığı problemiyle buluyorum. Bash'in python gibi olmadığı anlaşılıyor, ne söyleyebiliriz değişken = 1 + 5/6 (örneğin), Bash'de şu komutu kullanmalıyız İfade o Izleme

Expr komutu

Başka bir deyişle, expr komutu terminaldeki matematiksel ifadeleri çözmemize yardımcı olur, bununla ihtiyacımız olanı hesaplayabiliriz. Örneğin, 1 + 2 * 8/3 sonucunun görünmesini istiyorsak, terminale koyarız:

expr 1 + 2 \* 8 / 3

Yıldız işaretinden önce * ters eğik çizgiyi koyuyorum - »\ ... bu gereklidir, çünkü ifade, \ işareti olmadığı sürece yıldız işaretini çarpma sembolü olarak

Ve sonuç ekranda görünecektir. İşte bazı örnekler içeren bir ekran görüntüsü:

ekran görüntüsü_expr1

Son hesaplamalarda da görebileceğiniz gibi (14/4 ve 13/4), 14 bölü 4 aslında 3.5 ve 13 bölü 4 aslında 3.25, peki her iki durumda da bize 3'ü göstermesi nasıl mümkün olabilir? Olan şu ki, expr komutu bize ondalık sayıları göstermiyor, yani virgülden sonra gelenleri göstermiyor, bize sadece tamsayıyı gösteriyor.

Bir değişkene matematiksel bir ifadenin sonucunu (Örn: 10/2) atamak istersek, bu şöyle olur:

variable=`expr 10 / 2`

Sonra şununla kontrol ederiz:

echo $variable

Her karakter arasında bir boşluk, yani her sayı, her toplama, çıkarma, çarpma veya bölme sembolü arasında bir boşluk olması önemlidir.

Calc komutu

Bu, öncekinden farklı olarak, ondalık sayılar açısından kesin, örneğin:

calc 15 / 4

Bize şunu gösterecektir: 3.75

İşte birkaç örnek içeren bir ekran görüntüsü:

ekran görüntüsü_calc

İfadenin tersine, calc kullandığımızda her karakter arasında boşluk olmaması, yani sayılar ve semboller arasında önceki görüntüde gördüğünüz gibi boşluk olmaması daha iyidir. Ayrıca * karakterinin başına \ eklemeleri de gerekmez.

Aslında size anlatmak istediğim şey bu.

Bununla birlikte, her komut için (özellikle calc) başka ilginç ipuçları da vardır, kılavuzu okumanızı tavsiye ederim:

man calc

man expr

selamlar


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   ela dijo

    Bash'i matematik hesaplamalarında kullanmak kesinlikle iyi olmasa da çok kullanışlı, ondalık sayılar sayılır :)

    1.    Wada dijo

      Bay elav hala bash hesap makinemiz var 🙂 standart matematik kitaplığını kullanmak için -l argümanını kullanabiliriz
      bunun gibi bir şey

      $ echo "(4/8)+(6/9)" | bc -l
      1.166666666666666666666666

      ha

      1.    ela dijo

        😀

      2.    eliotime3000 dijo

        Mükemmel. Bu şekilde, saf X11 kullanırken XCalc yükleme zahmetinden kaçınıyorum.

      3.    KZKG ^ Gaara dijo

        Bunu bilmiyordum, harika !!

  2.   clow_eriol dijo

    Teşekkürler, oldukça kullanışlı 😉

    1.    KZKG ^ Gaara dijo

      Teşekkür ederim ^ _ ^

  3.   gece dijo

    Teşekkür ederim. Sistem hesaplayıcı, temel işlemler için bir rakip olmuştur.

    1.    KZKG ^ Gaara dijo

      Bizi okuduğunuz için teşekkür ederiz 🙂

  4.   Joaquin dijo

    İyi bahşiş!

  5.   Pedro lala dijo

    Hayır bana gusto