Nhập môn Bash Scripting
Alex Scriven
Data Scientist
Số không được tích hợp sẵn trong shell như hầu hết REPL (console) như R và Python
Trong Python hoặc R bạn có thể làm:
>>> 1 + 4
5
Nó sẽ trả về đúng kết quả!
Shell không hỗ trợ số nguyên bản:
(Trong terminal)
1 + 4
bash: 1: command not found
expr là tiện ích hữu ích (như cat hoặc grep)
Cái này sẽ chạy (trong terminal):
expr 1 + 4
5
Tốt!
expr không xử lý số thập phân nguyên bản:
(Trong terminal)
expr 1 + 2.5
expr: not a decimal number: '2.5'
Đừng lo! (Có cách)
bc (basic calculator) là chương trình dòng lệnh hữu ích.
Bạn có thể mở trong terminal và tính toán:

Dùng bc mà không mở trình tính bằng cách dùng pipe:
echo "5 + 7.5" | bc
12.5
bc có tham số scale để chọn số chữ số thập phân.
echo "10 / 3" | bc
3
echo "scale=3; 10 / 3" | bc
Lưu ý dùng ; để tách các 'dòng' trong terminal
3.333
Ta có thể gán biến số như biến chuỗi:
dog_name='Roger' dog_age=6echo "My dog's name is $dog_name and he is $dog_age years old"
Lưu ý dog_age="6" vẫn chạy, nhưng thành chuỗi!
My dog's name is Roger and he is 6 years old
Một biến thể của ký pháp ngoặc đơn cho biến số:
expr 5 + 7
echo $((5 + 7))
12
12
Lưu ý cách này dùng expr, không phải bc (không có số thập phân!)
Nhớ cách ta gọi shell lồng nhau ở bài trước?
Rất hữu ích cho biến số:
model1=87.65 model2=89.20echo "The total score is $(echo "$model1 + $model2" | bc)"echo "The average score is $(echo "($model1 + $model2) / 2" | bc)"
The total score is 176.85
The average score is 88
Nhập môn Bash Scripting