ฉันสามารถทำคณิตศาสตร์พื้นฐานใน Bash ได้หรือไม่?


33

ฉันสงสัยว่าเป็นไปได้ไหมที่จะทำคณิตศาสตร์อย่างง่ายในการทุบตี? ฉันคิดอะไรบางอย่างเช่น = 25-5 จะพิมพ์ออกมา 20 หรือบางสิ่งบางอย่าง

สามารถทำได้อย่างง่ายดาย?

ขอขอบคุณ


คำตอบ:


21

เพียงพิมพ์bcลงในเทอร์มินัล จากนั้นพิมพ์ข้อมูลคณิตศาสตร์ทั้งหมดหลังจากนั้น

bcย่อมาจาก " b asic c alculator"

จากนั้นพิมพ์quitและป้อนเพื่อออก


2
เพื่อความชัดเจนมันจะเป็นอย่างนั้น: echo 25-5 | bc
Medhat Helmy

สำหรับปัญหาทางคณิตศาสตร์บางอย่างคุณอาจจำเป็นต้องใส่เครื่องหมายคำพูดเช่นecho '0.6 * 12' | bc
Goose

คุณอาจต้องเพิ่มสเกลเพื่อให้การทำงานของจุดลอยตัวมีความแม่นยำเช่นecho "scale=2;557/3672" | bc
CpILL

60

หากเราพูดถึง Bash จริงๆไม่ใช่ Bourne Shell (sh) หรือ shell อื่น ๆ มันเป็นเรื่องง่าย

Bash สามารถคำนวณนิพจน์พื้นฐานด้วย $ ((นิพจน์)) และนี่คือตัวอย่างของวิธีที่คุณอาจใช้:

 A = 3
 ข = 4
 c = $ ((7 * A + B))
 echo $ c

หรือสำหรับการใช้แบบโต้ตอบเพียง

 echo $ ((7 * 3 + 4))

ดูเหมือนว่าจะเป็นทุบตีที่เหมาะสมเนื่องจากการทำงาน ฉันกำลังเข้าสู่กลุ่มมหาวิทยาลัยแห่งหนึ่งของฉัน
Kurru

4
$((expression))ไวยากรณ์เป็นส่วนหนึ่งของ POSIX มาตรฐานและได้รับมาจากsh ksh
geekosaur

6
Bash สามารถคำนวณเลขจำนวนเต็มได้เท่านั้น ไม่สามารถคำนวณเลขทศนิยมได้เช่น ksh93 หรือ zsh
fpmurphy

3
นี่ควรเป็นคำตอบที่ยอมรับได้
Andreas Hartmann

10

มีโปรแกรมอรรถประโยชน์บรรทัดคำสั่งจำนวนมากสำหรับทำการคำนวณอย่างง่าย:

$ expr 100 \* 4
400

$ echo '100 * 4' | bc
400

เพื่อชื่อเพียงสองของพวกเขา ใช้ความระมัดระวังในการคูณหากคุณไม่หลบหนี * เปลือกอาจลองและตีความว่าเป็นสัญลักษณ์แทน



7

ตอบคำถามของคุณดี แต่ให้พิจารณาสิ่งนี้:

linros distros ส่วนใหญ่ติดตั้ง python ไว้ล่วงหน้าแล้วทำไมไม่ใช้มันล่ะ

เพียงพิมพ์

python

ในเทอร์มินัลแล้วทำเลขคณิตทั้งหมดที่คุณต้องการ

2+2

จะส่งออก 4 :)

คุณสามารถทำได้โดยตรงจากเทอร์มินัลด้วย-cอาร์กิวเมนต์ python

python -c 'print 2+2'

บนคอมพิวเตอร์ของฉันการพิมพ์pythonใช้เวลาเกือบสองวินาทีในการเริ่มต้น ค่อนข้างน่ารำคาญหากคุณต้องการทำสิ่งที่ง่ายเช่น 2 + 2
ShreevatsaR

ใช้ python3 หากคุณไม่ต้องการการปัดเศษทศนิยม เช่น2 / 30(หลาม: 0) (python3: 0.06666666666666667)
hrvoj3e

และถ้าคุณติดตั้ง python3 เท่านั้น แต่ต้องการปัดเศษให้ใช้2//30หรือint(2/30)
mazunki

3

หรือทับทิม :)

แม้ว่าอาจจะไม่ได้ติดตั้งมาล่วงหน้า แต่ก็ค่อนข้างรวดเร็ว

พิมพ์แล้วirb2+2

หรือเพียงแค่ ruby -e 'p 2+2'


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.