Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Học Bash bằng cách viết một trò chơi tương tác

Học một ngôn ngữ lập trình mới có thể rất thú vị. Bất cứ khi nào tôi cố gắng học một cái mới, tôi đều tập trung vào việc xác định các biến, viết một câu lệnh và đánh giá các biểu thức. Một khi tôi đã hiểu chung về những khái niệm đó, tôi thường có thể tự mình tìm ra phần còn lại. Hầu hết các ngôn ngữ lập trình đều có một số điểm tương đồng, vì vậy khi bạn đã biết một ngôn ngữ lập trình, việc học ngôn ngữ tiếp theo là vấn đề tìm ra các chi tiết độc đáo và nhận ra sự khác biệt trong đó.

Để giúp tôi thực hành một ngôn ngữ lập trình mới, tôi muốn viết một vài chương trình thử nghiệm. Một chương trình mẫu mà tôi thường viết là chương trình "đoán số" đơn giản, trong đó máy tính chọn một số từ một đến 100 và yêu cầu tôi đoán số. Chương trình lặp lại cho đến khi tôi đoán đúng.

Chương trình "đoán số" thực hiện một số khái niệm trong ngôn ngữ lập trình:cách gán giá trị cho biến, cách viết câu lệnh và cách thực hiện các vòng lặp và đánh giá có điều kiện. Đó là một thử nghiệm thực tế tuyệt vời để học một ngôn ngữ lập trình mới.

Đoán số bằng Bash

Bash là trình bao tiêu chuẩn cho hầu hết các hệ thống Linux. Ngoài việc cung cấp giao diện người dùng dòng lệnh phong phú, Bash còn hỗ trợ một ngôn ngữ lập trình hoàn chỉnh ở dạng script .

Nếu bạn chưa quen với Bash, tôi khuyên bạn nên giới thiệu những phần giới thiệu sau:

  • Bash là gì?
  • Bắt đầu với lập trình Bash
  • Bắt đầu với Bash scripting cho sysadmins
  • Cách viết các hàm trong Bash
  • Đọc thêm về Bash

Bạn có thể khám phá Bash bằng cách viết một phiên bản của trò chơi "đoán số". Đây là cách triển khai của tôi:

#!/bin/bash

number=$(( $RANDOM % 100 + 1 ))

echo "Guess a number between 1 and 100"

guess=0

while [ "0$guess" -ne $number ] ; do
        read guess
        [ "0$guess" -lt $number ] && echo "Too low"
        [ "0$guess" -gt $number ] && echo "Too high"
done

echo "That's right!"
exit 0

Chia nhỏ tập lệnh

Dòng đầu tiên trong tập lệnh, #!/bin/bash yêu cầu Linux chạy tập lệnh này bằng cách sử dụng Bash shell. Mọi tập lệnh đều bắt đầu bằng #! cặp ký tự, cho biết đây là một tập lệnh shell. Nội dung ngay sau #! là vỏ để chạy. Trong trường hợp này, /bin/bash là trình bao Bash.

Để gán giá trị cho một biến, hãy liệt kê tên của biến đó theo sau là = dấu hiệu. Ví dụ:câu lệnh guess=0 gán giá trị 0 cho guess biến.

Bạn cũng có thể nhắc người dùng nhập giá trị bằng read bản tường trình. Nếu bạn viết read guess , Bash đợi người dùng nhập một số văn bản rồi lưu giá trị đó vào guess biến.

Để tham chiếu giá trị của một biến, hãy sử dụng $ trước tên biến. Vì vậy, đã lưu trữ một giá trị trong guess , bạn có thể truy xuất nó bằng cách sử dụng $guess .

Bạn có thể sử dụng bất kỳ tên nào bạn thích cho các biến, nhưng Bash dành riêng một vài tên biến đặc biệt cho chính nó. Một biến đặc biệt là RANDOM , tạo ra một số ngẫu nhiên rất lớn mỗi khi bạn tham chiếu đến nó.

Nếu bạn muốn thực hiện một thao tác đồng thời lưu trữ một giá trị, bạn cần đặt câu lệnh trong dấu ngoặc đặc biệt. Điều này yêu cầu Bash thực thi câu lệnh đó trước và = lưu trữ giá trị kết quả trong biến. Để đánh giá một biểu thức toán học, hãy sử dụng $(( )) xung quanh tuyên bố của bạn. Dấu ngoặc kép biểu thị một biểu thức số học . Trong ví dụ của tôi, number=$(( $RANDOM % 100 + 1 )) đánh giá biểu thức $RANDOM % 100 + 1 và sau đó lưu trữ giá trị trong number biến.

Toán tử số học tiêu chuẩn như + (cộng), - (dấu trừ), * (nhân), / (chia) và % (modulo) áp dụng.

Điều đó có nghĩa là câu lệnh number=$(( $RANDOM % 100 + 1 )) tạo một số ngẫu nhiên từ một đến 100. Toán tử modulo (% ) trả về phần còn lại sau khi chia hai số. Trong trường hợp này, Bash chia một số ngẫu nhiên cho 100, để lại phần còn lại trong phạm vi từ 0 đến 99. Bằng cách thêm một vào giá trị đó, bạn sẽ nhận được một số ngẫu nhiên từ một đến 100.

Bash hỗ trợ biểu thức điều kiện kiểm soát luồng như các vòng lặp. Trong trò chơi "đoán số", Bash tiếp tục lặp lại miễn là giá trị trong guess không bằng number . Nếu số đoán nhỏ hơn số ngẫu nhiên, Bash sẽ in "Quá thấp" và nếu số đoán lớn hơn số, Bash sẽ in "Quá cao".

Cách hoạt động

Bây giờ bạn đã viết tập lệnh Bash của mình, bạn có thể chạy nó để chơi trò chơi "đoán số". Tiếp tục đoán cho đến khi bạn tìm được số chính xác:

Guess a number between 1 and 100
50
Too high
30
Too high
20
Too high
10
Too low
15
Too high
13
Too low
14
That's right!

Mỗi khi bạn chạy tập lệnh, Bash sẽ chọn một số ngẫu nhiên khác.

Trò chơi "đoán số" này là một chương trình giới thiệu tuyệt vời khi học một ngôn ngữ lập trình mới vì nó thực hành một số khái niệm lập trình phổ biến một cách khá đơn giản. Bằng cách triển khai trò chơi đơn giản này bằng các ngôn ngữ lập trình khác nhau, bạn có thể chứng minh một số khái niệm cốt lõi và so sánh chi tiết trong mỗi ngôn ngữ.

Bạn có ngôn ngữ lập trình yêu thích không? Bạn sẽ viết trò chơi "đoán số" trong đó như thế nào? Theo dõi loạt bài viết này để xem các ví dụ về các ngôn ngữ lập trình khác mà bạn có thể quan tâm.