NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
22/08/2024
Lượt xem

Bash Input – Nguồn gốc và cách sử dụng input trong Bash Script hiệu quả

22/08/2024
12 phút đọc
Lượt xem

Đánh giá

Bash Input là cách bạn cung cấp lệnh và dữ liệu cho Bash shell – một chương trình phổ biến trên các hệ điều hành như Linux và macOS, cho phép bạn điều khiển máy tính bằng dòng lệnh. Bash shell sẽ tiếp nhận thông tin đầu vào, tìm hiểu ý định và thực hiện yêu cầu của bạn. Hãy cùng Vietnix tìm hiểu chi tiết hơn về Bash Input trong bài viết sau đây.

Bash Input có nguồn gốc từ đâu?

Khi nói đến môi trường Bash, bạn có thể nghĩ ngay đến Input là những dữ liệu mà script nhận vào để xử lý. Thực tế khi thực hiện, Input có thể được thu thập từ nhiều nguồn thông tin dữ liệu khác nhau như:

  • Environment variables: Những thông tin được tạo ra khi Bash Script bắt đầu hoạt động và có thể được sử dụng trong quá trình thực thi script.
  • Command-line arguments: Khi thực hiện một Bash Script, những giá trị này được gửi vào script và thường được lưu trữ trong các positional parameters (tham số vị trí).
  • Files: Bash Script có khả năng đọc dữ liệu từ các file và trích xuất thông tin cần thiết từ các file này để xử lý.
  • File Descriptors: Cách để bạn có thể truy cập các nguồn dữ liệu khác nhau như pipes, terminal, socket,…
Bash Input có nguồn gốc từ đâu
Bash Input có nguồn gốc từ đâu

Tóm lại, Bash shell có khả năng tiếp nhận thông tin đầu vào từ nhiều nguồn khác nhau sẽ được gọi là Bash Input. Việc nắm vững các nguồn dữ liệu sẽ giúp bạn khai thác tối đa sức mạnh của Bash Script trong việc tự động hóa các tác vụ trên hệ thống.

Bash ngoài khả năng là một shell (môi trường dòng lệnh) còn có vai trò là một lệnh trên hệ điều hành Linux. Bạn có thêm xem qua lệnh bash và cách chạy tập lệnh bash nếu như đây là lần đầu bạn biết đến Bash Script.

Ngoài ra, để hiểu rõ hơn về Bash Shell, mời bạn tham khảo Bash có phải là ngôn ngữ lập trình để tự giải đáp những thắc mắc về môi trường dòng lệnh trong quá trình tìm hiểu.

Cách hoạt động của input trong Bash Script

Bash Script là một chuỗi các dòng lệnh được viết trong một tệp. Nhóm lệnh này được đọc và thực hiện bởi chương trình bash shell. Chương trình sẽ thực hiện từng dòng lệnh.

Cách hoạt động của Bass Input Script
Cách hoạt động Input trong Bass Script

Khi chạy song song lệnh Bash với nhiều script, bạn cần hiểu rõ nguồn gốc của dữ liệu đầu vào và vị trí dữ liệu đầu ra (Output). Lúc này, bạn cần xác định nguồn gốc và cấu trúc của dữ liệu và những bước xử lý để chuyển đổi, tạo thành kết quả mong muốn. Từ đây, bạn sẽ hình thành các thao tác để xử lý dữ liệu hiệu quả – Bash I/O.

Lệnh read sẽ tiếp nhận thông tin dữ liệu đầu vào trong Bash. Đồng thời, dòng lệnh hỗ trợ nhiều tùy chọn (arguments) khác nhau, cho phép bạn linh hoạt trong việc thu thập dữ liệu từ người dùng. Tương tự, với tính năng Bash Piping, các dòng lệnh tiếp theo sẽ nối tiếp nhau xử lý sau mỗi cú pháp lệnh được thực hiện xong.

Cách 1: Nhập lệnh trực tiếp

Cách phổ biến nhất để cung cấp dữ liệu cho Bash shell là nhập trực tiếp dữ liệu cần xử lý tại cú pháp dòng lệnh. Do đó, bạn cần nhập lệnh, tùy chọn, đối số và các tham số khác ngay sau dấu nhắc của shell. 

Ví dụ: Bạn muốn gửi tham số 2 và 5 vào script bash parameternum.sh, bạn nhập lệnh bash với cú pháp sau:

bash parameternum.sh 2 5

Sau khi nhập lệnh, script này sẽ sử dụng các tham số 2 và 5 để thực hiện các tác vụ cụ thể.

Việc nhập dữ liệu trực tiếp ngay cú pháp dòng lệnh trong Bash Input đơn giản. Bạn chỉ cần nhập lệnh và các tham số tại dấu nhắc, sau đó nhấn Enter để chạy lệnh.

Cách 2: Dùng Bash Script để yêu cầu user nhập dữ liệu đầu vào

Bạn có thể tạo một Bash Script để hiển thị lời nhắc nhập dữ liệu trên terminal và yêu cầu người dùng nhập thông tin cần thiết. Script thông thường sẽ bao gồm 3 thông tin sau:

  • Bộ đếm thời gian: Bạn thiết lập đếm ngược từ một khoảng thời gian xác định. Nếu người dùng không nhập dữ liệu gì trong thời gian đó, chương trình sẽ tự động kết thúc.
  • Giới hạn độ dài: Bạn có thể giới hạn số lượng ký tự người dùng có thể nhập để tránh trường hợp nhập liệu quá dài không cần thiết.
  • Tùy chọn mật khẩu: Bạn có thể cho phép nhận mật khẩu làm đầu vào mà không hiển thị ký tự đã nhập trên màn hình.

Cách 3: Chuyển hướng dữ liệu đầu vào từ 1 file bằng bash

Bash cho phép bạn chuyển hướng dữ liệu đầu vào từ một file đến một lệnh bằng cách sử dụng luồng stdin (đầu vào chuẩn). Mặc định, các lệnh sẽ đọc dữ liệu từ terminal. Tuy nhiên bạn có thể sử dụng toán tử chuyển hướng đầu vào < nhằm đọc nội dung dữ liệu từ một file.

Ví dụ: Bạn muốn đọc nội dung của file input.txt và sắp xếp, hãy nhập lệnh sort theo cú pháp như sau:

sort < input.txt

Giải thích:

    • sort: Lệnh dùng để sắp xếp dữ liệu.

    • <: Toán tử chuyển hướng đầu vào của dữ liệu và lấy nội dung từ file input.txt và chuyển thành input cho lệnh sort.

    • input.txt: Đây là tên file chứa dữ liệu cần sắp xếp.

Thay vì phải nhập dữ liệu trực tiếp vào terminal, bạn có thể sử dụng luồng stdin và toán tử < để chuyển hướng đầu vào của dữ liệu từ một file cho một lệnh bất kỳ trong Bash thực hiện và xử lý.

Cách 4: Đọc các dòng trong một file bằng Bash Input

Thỉnh thoảng, bạn cần đọc từng dòng của một file ngay trên terminal. Bash Input có thể giúp bạn thực hiện điều này một cách dễ dàng. Dưới đây là 3 cách đọc nội dung file bạn có thể áp dụng:

  1. Đọc từng trường (field) trên mỗi dòng của file input.
  2. Đọc từng dòng của file văn bản để tạo ra file pdf.
  3. Đọc từ một biến trong Bash shell.

Giả sử, Bạn đã lưu trữ file trước đó vào một biến $filename và biến $n được sử dụng để giữ giá trị của mỗi dòng. Lúc này, bạn hãy sử dụng vòng lặp while, chúng ta sẽ đọc từng dòng từ một file với số dòng cụ thể:

#!/bin/bash
filename='OS.txt'
n=1
while read line;
do
# for read each line
echo "OS distribution line no. $n : $line"
n=$((n+1))
done < $filename

Sau khi đọc, bạn có thể lưu file lại với tên bất kỳ như OSinfo.sh và nhập lệnh sau trên thiết bị đầu cuối để thực hiện tập lệnh #!/bin/bash:

bash OSinfo.sh

Cuối cùng, nếu như muốn xem nội dung file gốc, bạn có thể sử dụng lệnh cat:

cat OS.txt

Cách 5: Tổng hợp dữ liệu đầu vào từ nhiều loại file

Bạn có thể lấy dữ liệu input từ 3 loại file khác nhau như:

  • File CSV (viết tắt của Comma Separated Values): File CSV lưu trữ dữ liệu theo dạng bảng, các trường dữ liệu được phân cách bằng dấu phẩy.
  • File text: Bạn có thể lấy dữ liệu từ các file văn bản.
  • File PDF: Bạn cũng có thể lấy dữ liệu từ file PDF cho Bash Script của mình.

Việc nhập dữ liệu từ file giúp bạn dễ dàng xử lý lượng lớn dữ liệu mà không cần nhập thủ công, tiết kiệm thời gian và tăng hiệu quả của Bash Script.

Cách 6: Tự động hoàn thành các lệnh bằng tính năng của bash

Bash hỗ trợ tính năng tự động hoàn thành, giúp bạn hoàn thiện các lệnh, tên file và các input khác một cách nhanh chóng bằng cách nhấn phím Tab.

Thông qua các tính năng tự động hoàn thành một cách hiệu quả và tận dụng các script được tích hợp sẵn trong Bash, bạn có thể tiết kiệm thời gian và giảm thiểu khả năng xảy ra lỗi khi làm việc với dữ liệu đầu vào phức tạp hoặc dài dòng.

Cách 7: Truy cập nội dung của file bằng Bash

Bạn có thể sử dụng lệnh cat trong Bash để xem nội dung của một hoặc nhiều file ngay trên terminal và thậm chí đếm tổng số dòng của chúng

Để thực hiện, bạn có thể thực hiện cú pháp cơ bản của lệnh cat quen thuộc như sau:

$ cat sample.txt

Với cú pháp, bạn có thể truy cập vào toàn bộ nội dung của file sample.txt. Ngoài ra bạn nếu như bạn muốn xem thêm nội dung các file đã có khác như sample1.txt, sample2.txt và sample3.txt, bạn thực hiện tiếp cú pháp như sau

$ cat sample1.txt sample2.txt sample3.txt

Câu hỏi thường gặp

Tại sao việc kiểm tra đầu vào trong một Bash Script lại quan trọng?

Kiểm tra đầu vào giúp ngăn chặn người dùng có ý đồ xấu như đưa vào dữ liệu không hợp lệ, gây lỗi hoặc tấn công hệ thống. Ngoài ra, việc này sẽ giúp chương trình chạy nhanh hơn vì không phải mất thời gian xử lý những dữ liệu sai.

Tham số trong Bash là gì?

Tham số trong Bash cho phép truyền dữ liệu vào script khi được gọi từ dòng lệnh. Có 10 tham số vị trí, được đánh số từ $0 đến $9. $0 thường chứa tên của script, trong khi các tham số từ $1 trở đi chứa các giá trị được cung cấp bởi người dùng. Mặc dù giới hạn là 10, nhưng có các kỹ thuật để xử lý nhiều tham số hơn nếu cần thiết.

Biến trong Bash có kiểu dữ liệu không?

Bash có hai loại biến: biến hệ thống (do hệ thống định nghĩa) và biến người dùng (do bạn tự tạo).

Lời kết

Bài viết trên đã cung cấp cho bạn những thông tin chi tiết về Bash Input. Hy vọng những kiến thức này sẽ giúp bạn khai thác tối đa sức mạnh của Bash, tự tin xử lý dữ liệu và xây dựng các script hiệu quả cho công việc của mình. Nếu còn bất cứ điều gì thắc mắc về Bash Input, bạn có thể bình luận để được giải đáp cụ thể hơn.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG