15+ mẹo và thủ thuật Bash giúp bạn làm chủ dòng lệnh Linux (Phần 5)

15+ mẹo và thủ thuật Bash giúp bạn làm chủ dòng lệnh Linux (Phần 5)

DataOnline sẽ hướng dẫn bạn cách xử lý nhập liệu từ người dùng trong Bash – từ việc hiển thị thông báo “nhấn Enter để tiếp tục” cho đến cách ghi nhận chuỗi dữ liệu người dùng nhập và lưu vào biến để sử dụng trong các quy trình xử lý sau.

Ngoài ra, bài viết cũng cung cấp phương pháp tìm tài liệu hướng dẫn (manpage) dành cho các lệnh tích hợp sẵn (built-in) trong Bash – những lệnh mà bạn có thể tưởng như không có tài liệu chính thức, nhưng thực chất lại có thể truy cập đầy đủ nếu biết cách tra cứu đúng.

Trong hướng dẫn này, bạn sẽ học được:

  • Các mẹo, thủ thuật và phương pháp hữu ích khi làm việc với dòng lệnh Bash
  • Cách tương tác nâng cao với Bash Shell
  • Cách cải thiện kỹ năng Bash toàn diện và trở thành một người dùng Bash thành thạo hơn

Yêu cầu phần mềm và quy ước sử dụng

Danh mục Yêu cầu, quy ước hoặc phần mềm được sử dụng
Hệ thống Linux – không phụ thuộc vào bản phân phối
Phần mềm Dòng lệnh Bash, hệ điều hành dựa trên Linux
Khác Các tiện ích không có sẵn trong Bash có thể được cài đặt bằng sudo apt-get install utility-name (hoặc yum install trên các hệ thống RedHat)

Quy ước

  • # – các lệnh yêu cầu thực thi với quyền root (trực tiếp hoặc dùng sudo)
  • $ – các lệnh thực thi với quyền người dùng không đặc quyền

Ví dụ 1: Yêu cầu người dùng nhấn Enter để tiếp tục

Bạn đã bao giờ viết một script mà muốn hiện ra dòng “nhấn phím bất kỳ để tiếp tục” chưa? Mặc dù việc yêu cầu “nhấn phím bất kỳ” có thể rủi ro (ai đó lỡ nhấn nút nguồn thì sao ), thì yêu cầu “nhấn Enter để tiếp tục” lại rất dễ thực hiện trong script Bash:

$ cat test.sh 
#!/bin/bash
read -p 'Press enter to continue...'
echo 'Thank you for pressing enter... Please come again...'

Thử chạy nhé:

$ ./test.sh
Press enter to continue...
Thank you for pressing enter... Please come again...

Chúng tôi đã nhấn Enter sau dòng “Press enter to continue…” và script chạy đúng như mong đợi!

Tùy chọn -p (prompt) của lệnh read sẽ giúp hiển thị thông báo nhắc người dùng nhập liệu.

Ví dụ 2: Đọc dữ liệu người dùng nhập từ script

Giờ hãy nâng cấp ví dụ 1 một chút và thực sự đọc một chuỗi mà người dùng nhập vào, sau đó lưu vào biến:

$ cat test.sh 
#!/bin/bash
read -p 'Your input: ' VAR1
echo "Input given: ${VAR1}"

Lại thử chạy nào:

$ ./test.sh 
Your input: I am typing here            
Input given: I am typing here

Script hoạt động hoàn hảo. Bạn có thể dùng read --help để xem thêm tùy chọn hỗ trợ. Lưu ý: nếu bạn thử man read, nó sẽ đưa bạn tới tài liệu của hàm đọc file trong Linux – chứ không phải read trong Bash!

Việc đọc tài liệu read trong Bash rất nên làm, vì mặc định read có thể gây ra hiện tượng tách từ tự động.
Trong ví dụ trên thì không vấn đề vì chúng ta chỉ dùng một biến duy nhất để lưu input. Tuy nhiên nếu bạn dùng nhiều biến, bạn sẽ cần hiểu thêm về biến môi trường IFS (Internal Field Separator) – một công cụ mạnh mẽ giúp Bash xác định dấu phân cách giữa các trường.

Ví dụ 3: Tài liệu lệnh đâu mất rồi?

Như bạn đã thấy trong ví dụ 2, đôi khi việc tra tài liệu bằng man có thể dẫn đến kết quả không như mong đợi – ví dụ như man read đưa ta đến tài liệu cho thao tác đọc file, thay vì lệnh read trong Bash.

Tuy nhiên, thực ra tài liệu vẫn có, nhưng vì đây là lệnh tích hợp (built-in command) nên cần tra cứu khác một chút:

Thay vào đó, bạn có thể sử dụng lệnh man builtins để truy cập tài liệu hướng dẫn (manual) dành cho tất cả các lệnh tích hợp sẵn trong Bash.

Lệnh này sẽ đưa bạn đến trang tài liệu của tất cả các lệnh tích hợp sẵn trong Bash. Sau đó bạn có thể tìm từ khóa read, hoặc bất kỳ lệnh built-in nào khác để tra cứu.

Nếu bạn muốn tìm hiểu thêm về Bash nói chung, hãy tham khảo loạt bài Các mẹo và thủ thuật dòng lệnh Bash hữu ích  nơi tổng hợp những hướng dẫn thực tế và mẹo hữu ích dành cho người dùng Bash ở mọi cấp độ.

Kết luận

Trong bài viết này, chúng ta đã cùng nhau khám phá cách xử lý nhập liệu trong dòng lệnh Bash một cách hiệu quả. Bạn đã học được cách hiển thị prompt để yêu cầu người dùng nhấn Enter, cách đọc và lưu chuỗi dữ liệu nhập từ người dùng vào biến, cũng như hiểu thêm về sức mạnh của lệnh read, biến môi trường IFS và cách thao tác với nhiều biến cùng lúc. Không chỉ vậy, bạn còn nắm được cách tra cứu tài liệu chính thức cho các lệnh tích hợp sẵn trong Bash thông qua man builtins. Hy vọng những kiến thức này sẽ giúp bạn làm chủ Bash tốt hơn và tiếp tục tận hưởng hành trình khám phá thế giới dòng lệnh đầy thú vị!

Các ví dụ về mẹo và thủ thuật dòng lệnh Bash hữu ích – Phần 1

Các ví dụ về mẹo và thủ thuật dòng lệnh Bash hữu ích – Phần 2

Các ví dụ về mẹo và thủ thuật dòng lệnh Bash hữu ích – Phần 3

Các ví dụ về mẹo và thủ thuật dòng lệnh Bash hữu ích – Phần 4

Các ví dụ về mẹo và thủ thuật dòng lệnh Bash hữu ích – Phần 5

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *