Trong bài này sẽ thảo luận Scripts từ góc độ Toán học và Số. Dù đã đăng script phức tạp hơn (Máy tính đơn giản) ở bài trước, nhưng từ góc độ người dùng khó hiểu nên tôi chia nhỏ để dễ học.
Trước bài này, 3 bài Shell Scripting Series đã xuất bản:
- Hiểu Linux Shell và Basic Shell Scripting – Phần I
- 5 Shell Scripts học Shell Programming – Phần II
- Khám phá thế giới Linux BASH Scripting – Phần III
Tiếp tục học với các script Toán học mới:
Script 1: Cộng (Additions)
Tạo file "Addition.sh" và chmod 755 như bài trước rồi chạy.
#!/bin/bash echo "Nhập số thứ nhất: " read a echo "Nhập số thứ hai: " read b x=$(expr "$a" + "$b") echo $a + $b = $x
Kết quả mẫu
[admin@wsxdn.com ~]# vi Additions.sh [admin@wsxdn.com ~]# chmod 755 Additions.sh [admin@wsxdn.com ~]# ./Additions.sh "Nhập số thứ nhất: " 12 "Nhập số thứ hai: " 13 12 + 13 = 25
Tải Additions.sh
Script 2: Trừ (Subtraction)
#!/bin/bash echo "Nhập số thứ nhất: " read a echo "Nhập số thứ hai: " read b x=$(($a - $b)) echo $a - $b = $x
Lưu ý: Thay expr bằng phép tính trực tiếp trong shell.
Kết quả mẫu
[admin@wsxdn.com ~]# vi Substraction.sh [admin@wsxdn.com ~]# chmod 755 Substraction.sh [admin@wsxdn.com ~]# ./Substraction.sh "Nhập số thứ nhất: " 13 "Nhập số thứ hai: " 20 13 - 20 = -7
Tải Substraction.sh
Script 3: Nhân (Multiplication)
Bạn đang tận hưởng học script dễ dàng, tiếp theo theo thứ tự là Nhân.
#!/bin/bash echo "Nhập số thứ nhất: " read a echo "Nhập số thứ hai: " read b echo "$a * $b = $(expr $a \* $b)"
Lưu ý: Ở đây không gán kết quả nhân vào biến mà tính trực tiếp trong câu lệnh xuất.
Kết quả mẫu
[admin@wsxdn.com ~]# vi Multiplication.sh [admin@wsxdn.com ~]# chmod 755 Multiplication.sh [admin@wsxdn.com ~]# ./Multiplication.sh "Nhập số thứ nhất: " 11 "Nhập số thứ hai: " 11 11 * 11 = 121
Tải Multiplication.sh
Script 4: Chia (Division)
Đúng! Tiếp theo Chia, script rất đơn giản. Kiểm tra自己.
#!/bin/bash echo "Nhập số thứ nhất: " read a echo "Nhập số thứ hai: " read b echo "$a / $b = $(expr $a / $b)"
Kết quả mẫu
[admin@wsxdn.com ~]# vi Division.sh [admin@wsxdn.com ~]# chmod 755 Division.sh [admin@wsxdn.com ~]# ./Division.sh "Nhập số thứ nhất: " 12 "Nhập số thứ hai: " 3 12 / 3 = 4
Tải Division.sh
Script 5: Bảng cửu chương (Table)
Được! Sau các phép toán cơ bản. Viết script in bảng cửu chương bất kỳ số.
#!/bin/bash echo "Nhập số muốn in bảng cửu chương: " read n i=1 while [ $i -ne 10 ] do i=$(expr $i + 1) table=$(expr $i \* $n) echo $table done
Kết quả mẫu
[admin@wsxdn.com ~]# vi Table.sh [admin@wsxdn.com ~]# chmod 755 Table.sh [admin@wsxdn.com ~]# ./Table.sh "Nhập số muốn in bảng cửu chương: " 29 58 87 116 145 174 203 232 261 290
Tải Table.sh
Script 6: Chẵn Lẻ (EvenOdd)
Chúng ta từ nhỏ luôn tính xem số chẵn lẻ. Ý tưởng triển khai trong script không tồi.
#!/bin/bash echo "Nhập số:" read n num=$(expr $n % 2) if [ $num -eq 0 ] then echo "là số Chẵn" else echo "là số Lẻ" fi
Kết quả mẫu
[admin@wsxdn.com ~]# vi EvenOdd.sh [admin@wsxdn.com ~]# chmod 755 EvenOdd.sh [admin@wsxdn.com ~]# ./EvenOdd.sh Nhập số 12 là số Chẵn
[admin@wsxdn.com ~]# ./EvenOdd.sh Nhập số 11 là số Lẻ
Tải EvenOdd.sh
Script 7: Giai thừa (Factorial)
Tiếp theo tìm Giai thừa.
#!/bin/bash echo "Nhập số:" read a fact=1 while [ $a -ne 0 ] do fact=$(expr $fact \* $a) a=$(expr $a - 1) done echo $fact
Kết quả mẫu
[admin@wsxdn.com ~]# vi Factorial.sh [admin@wsxdn.com ~]# chmod 755 Factorial.sh [admin@wsxdn.com ~]# ./Factorial.sh Nhập số 12 479001600
Bây giờ bạn có thể thư giãn vì tính 12*11*10*9*7*7*6*5*4*3*2*1 khó hơn script đơn giản trên. Nghĩ đến trường hợp cần 99! hay tương tự. Chắc chắn script này rất tiện.
Tải Factorial.sh
Script 8: Số Armstrong (Armstrong)
Số Armstrong! Quên định nghĩa? Số Armstrong 3 chữ số là số nguyên mà tổng lập phương các chữ số bằng chính nó. Ví dụ 371 vì 3**3 + 7**3 + 1**3 = 371.
#!/bin/bash echo "Nhập một số" read n arm=0 temp=$n while [ $n -ne 0 ] do r=$(expr $n % 10) arm=$(expr $arm + $r \* $r \* $r) n=$(expr $n / 10) done echo $arm if [ $arm -eq $temp ] then echo "Armstrong" else echo "Không phải Armstrong" fi
Kết quả mẫu
[admin@wsxdn.com ~]# vi Armstrong.sh [admin@wsxdn.com ~]# chmod 755 Armstrong.sh [admin@wsxdn.com ~]# ./Armstrong.sh Nhập một số 371 371 Armstrong
[admin@wsxdn.com ~]# ./Armstrong.sh Nhập một số 123 36 Không phải Armstrong
Tải Armstrong.sh
Script 9: Số nguyên tố (Prime)
Script cuối phân biệt số nguyên tố.
#!/bin/bash
echo "Nhập bất kỳ số nào"
read n
i=1
c=1
while [ $i -le $n ]
do
i=$(expr $i + 1)
r=$(expr $n % $i)
if [ $r -eq 0 ]
then
c=$(expr $c + 1)
fi
done
if [ $c -eq 2 ]
then
echo "Nguyên tố"
else
echo "Không phải nguyên tố"
fi
Kết quả mẫu
[admin@wsxdn.com ~]# vi Prime.sh [admin@wsxdn.com ~]# chmod 755 Prime.sh [admin@wsxdn.com ~]# ./Prime.sh "Nhập bất kỳ số nào" 12 "Không phải nguyên tố"
Tải Prime.sh
Đó là tất cả cho lần này. Bài tới sẽ bao quát chương trình toán học khác trong shell scripting. Đừng quên góp ý ở phần bình luận. Like và share giúp lan tỏa. Ghé tecmint.com cho Tin tức và bài viết về FOSS. Cho đến lúc đó hãy theo dõi.