Bạn đang xem xét việc xây dựng một giao diện dòng lệnh? Đó là một ý tưởng dự án tuyệt vời! Trong hướng dẫn này, chúng tôi thảo luận cách xây dựng giao diện dòng lệnh trong Ruby.
Trước khi bắt đầu, bạn nên cài đặt Ruby trên máy tính của mình và bạn nên sử dụng một thiết bị đầu cuối cho phép bạn chạy các lệnh Unix. Nếu bạn đang sử dụng máy tính chạy Linux hoặc macOS, bạn đã tích hợp sẵn thiết bị đầu cuối tương thích với Unix. Khi đã đáp ứng những yêu cầu này, bạn đã sẵn sàng bắt đầu!
Giao diện dòng lệnh là gì?
Khi bắt đầu sự nghiệp viết mã của mình, bạn sẽ sớm tìm hiểu về thiết bị đầu cuối. Cửa sổ terminal cho phép bạn tương tác với các giao diện dòng lệnh (CLI), bạn có thể sử dụng giao diện này để chạy và tương tác với các chương trình bằng lệnh văn bản.
Sử dụng cửa sổ terminal, bạn có thể đưa ra hướng dẫn cho máy tính của mình mà không cần chuột hoặc ứng dụng trực quan. Điều này giúp bạn tiết kiệm thời gian khi viết mã vì bạn chỉ có thể tập trung vào viết hướng dẫn. Bạn không cần phải lo lắng về việc học giao diện người dùng mới cho từng công cụ bạn sử dụng!
CLI mà bạn đã tương tác cho đến nay có thể đã được người khác phát triển. Ví dụ:Python CLI cho phép bạn chạy Python từ thiết bị đầu cuối, trong khi Ruby CLI cho phép bạn làm điều tương tự với các ứng dụng Ruby. May mắn thay, bạn cũng có thể tự xây dựng!
Để bắt đầu, hãy mở một cửa sổ terminal trên máy của bạn. Sau đó, sử dụng mkdir lệnh để tạo một thư mục cho mã của bạn. Đây là một ví dụ về lệnh này đang hoạt động:
Lệnh này tạo một thư mục có tên “ruby-cli” trên máy tính của chúng tôi. Bây giờ chúng ta có thể sử dụng cd để vào thư mục này và tạo CLI của chúng tôi:
Tuyệt vời! Bây giờ chúng ta đang ở trong thư mục “ruby-cli” mới. Đó là tất cả những thiết lập mà chúng ta cần thực hiện cho bài viết này - bước tiếp theo là bắt đầu viết giao diện dòng lệnh của chúng ta.
Tính năng đầu tiên mà chúng tôi sẽ thêm vào giao diện dòng lệnh của mình là in ra thuật ngữ “Đây là một ví dụ CLI” vào thiết bị đầu cuối của chúng tôi. Chúng ta có thể làm như vậy bằng cách tạo một tệp mới có tên “home.rb” và chèn mã vào tệp.
Để tạo một tệp mới, chúng ta có thể sử dụng lệnh sau:
Điều này sẽ mở ra một nano trình soạn thảo văn bản nơi chúng ta có thể đặt mã cho chương trình của mình. Bạn có thể sử dụng trình soạn thảo văn bản khác, chẳng hạn như vim hoặc emacs, nếu muốn.
Trong trình soạn thảo văn bản nano của chúng tôi, chúng tôi dán đoạn mã sau:
#!/usr/bin/env ruby puts "This is an example CLI"
Bây giờ, hãy lưu bằng cách nhấn Control-X trên máy Mac, Y rồi Enter. Thao tác này sẽ tạo một tệp mới có tên “home.rb” trong thư mục “ruby-cli” của chúng tôi.
Trong mã của chúng tôi, dòng đầu tiên yêu cầu máy tính sử dụng trình thông dịch Ruby để chạy mã của chúng tôi. Điều này đảm bảo rằng mã của chúng tôi được chạy trong Ruby. Dòng thứ hai hướng dẫn chương trình của chúng ta in “Đây là một ví dụ CLI” ra bảng điều khiển.
Bây giờ, chúng ta có thể chạy tệp của mình bằng ruby lệnh:
Mã của chúng tôi trả về:
Như bạn có thể thấy, chúng tôi vừa tạo một CLI đơn giản. Khi chúng tôi chạy tệp “home.rb”, cụm từ 'Đây là ví dụ CLI' sẽ được in ra bảng điều khiển.
Chấp nhận đầu vào của người dùng bằng cờ
CLI của chúng tôi khá đơn giản cho đến nay—nó chỉ in ra một thông báo tới bảng điều khiển. Nếu bạn muốn chấp nhận đầu vào của người dùng thì sao? Chúng ta có thể làm như vậy bằng cách sử dụng optparse thư viện. Điều này cho phép chúng tôi phân tích các tùy chọn được cung cấp từ dòng lệnh có thể được sử dụng trong chương trình của chúng tôi.
Chúng tôi đang sử dụng optparse thư viện vì một vài lý do. Đầu tiên, optparse thư viện cho phép chúng tôi tạo menu trợ giúp cho mỗi lệnh. Thứ hai, optparse được tích hợp sẵn trong Ruby nên bạn không cần phải cài đặt bất cứ thứ gì.
Hãy thêm một tính năng chấp nhận địa chỉ email của người dùng làm đầu vào và sau đó trả nó về bảng điều khiển.
Mở tệp “home.rb” trong trình soạn thảo văn bản của bạn và thay thế nội dung của nó bằng mã này:
#!/usr/bin/env ruby
require 'optparse'
options = {}
OptionParser.new do |op|
op.on("-e", "--email", "Your email address") do |value|
options[:name] = value
end
end.parse!
puts 'Your email address is: ' + options[:name]
Trong mã này, chúng tôi sử dụng optparse thư viện để phân tích dữ liệu được gửi thông qua lệnh. Sau đó, chúng tôi gán giá trị mà người dùng đã chỉ định cho một biến và in nó ra bảng điều khiển. Trong trường hợp này, chúng tôi in “Địa chỉ email của bạn là:“, theo sau là email mà người dùng đã chỉ định.
Chúng ta có thể sử dụng lệnh này để thử mã của mình:
ruby home.rb -e jack@jones.com
Mã của chúng tôi trả về:
Your email address is: jack@jones.com
Điều thú vị về optparse thư viện là nó tự động tạo menu trợ giúp. Chúng ta có thể xem menu trợ giúp này bằng cách sử dụng đoạn mã sau:
Mã của chúng tôi trả về:
Usage: ruby [options] -e, --email Your email address
Khi bạn đang chạy lệnh, bạn có thể sử dụng -e hoặc --email cờ.

"Nghề nghiệp Karma bước vào cuộc đời tôi khi tôi cần nó nhất và nhanh chóng giúp tôi tham gia chương trình đào tạo. Hai tháng sau khi tốt nghiệp, tôi đã tìm được công việc mơ ước phù hợp với những giá trị và mục tiêu trong cuộc sống của mình!"
Venus, Kỹ sư phần mềm tại Rockbot
Tìm trận đấu Bootcamp của bạn
Chấp nhận ý kiến đóng góp của người dùng trong chương trình của bạn
Trong ví dụ trước, chúng tôi chấp nhận đầu vào của người dùng bằng cờ. Tuy nhiên, cờ có thể không thực tế nếu bạn muốn chấp nhận nhiều phần thông tin.
Cái hay của việc tạo CLI trong Ruby là bất kỳ chương trình Ruby nào cũng có thể trở thành CLI. Vì vậy, bạn không cần phải học bất kỳ quy ước mới nào để bắt đầu.
Giả sử chúng ta muốn xây dựng một ứng dụng truy xuất tên và email của người dùng và kiểm tra xem họ có trên 16 tuổi hay không.
Hãy bắt đầu bằng cách chạy lệnh sau để nhập vào nano của chúng tôi soạn thảo văn bản:
Trong tệp mới tạo của bạn, dán đoạn mã sau:
puts "What is your name?"
name = gets
puts "What is your age?"
age = gets
if age.to_i >= 16
puts "#{name}! You are 16 or older!"
else
puts "#{name}! You are not over the age of 16!"
end Sau khi lưu tệp, bạn có thể chạy CLI mới bằng lệnh này:
Mã của chúng tôi trả về:
What is your name? James What is your age? 17 James! You are 16 or older!
Nếu chúng ta chèn giá trị “14” để trả lời câu hỏi “Tuổi của bạn là bao nhiêu?” thì kết quả sau sẽ được trả về:
James! You are not over the age of 16.
Bạn có thể viết bất kỳ mã Ruby nào bạn muốn vào CLI của mình. Giới hạn duy nhất là trí tưởng tượng của bạn.
Kết luận
CLI cho phép bạn tương tác với một chương trình bằng thiết bị đầu cuối. Đó là một giải pháp thay thế cho giao diện người dùng của một chương trình (giống như những gì bạn thấy khi mở trình soạn thảo văn bản như Atom hoặc Notepad).
Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách xây dựng CLI đơn giản bằng Ruby. Bây giờ bạn đã sẵn sàng bắt đầu xây dựng CLI của riêng mình như một chuyên gia về Ruby!