Lệnh đọc Linux

theanh

Administrator
Nhân viên
Lệnh read trong Bash đọc một dòng từ đầu vào chuẩn và chia nó thành các trường.

Ví dụ về lệnh đọc trong Linux​

Lệnh read trong Linux là lệnh tích hợp được sử dụng trong các tập lệnh shell và dòng lệnh để đọc một dòng đầu vào từ đầu vào chuẩn (stdin) và gán nó cho một biến. Sau đây là một số ví dụ về cách sử dụng lệnh read:

Cách sử dụng cơ bản:
Mã:
read varnameecho "You entered: $varname"
Tập lệnh này đợi người dùng nhập một số văn bản, sau đó được lưu trữ trong biến varname. Khi người dùng nhấn Enter, tập lệnh sẽ hiển thị văn bản đã nhập.

Đọc nhiều giá trị:
Mã:
echo "Enter two values:"read var1 var2echo "You entered: $var1 and $var2"
Điều này cho phép người dùng nhập hai giá trị riêng biệt, được lưu trữ trong var1var2. Các giá trị phải được phân tách bằng dấu cách.

Nhập im lặng (Hữu ích cho mật khẩu):
Mã:
read -s -p "Enter your password: " passwordechoecho "Password entered."
Tùy chọn -s tạo ra read im lặng, nghĩa là không phản hồi dữ liệu đầu vào về thiết bị đầu cuối. Điều này hữu ích cho thông tin nhạy cảm như mật khẩu. Tùy chọn -p cho phép bạn hiển thị lời nhắc.

Đọc toàn bộ dòng bao gồm cả khoảng trắng:
Mã:
IFS= read -r lineecho "You entered: $line"
Bằng cách thiết lập IFS (Bộ phân cách trường nội bộ) thành giá trị trống và sử dụng -r (để ngăn không cho các ký tự thoát dấu gạch chéo ngược được diễn giải), toàn bộ dòng đầu vào, bao gồm cả khoảng trắng, được đọc vào biến line.

Đặt thời gian chờ:
Mã:
read -t 5 -p "Enter your name (you have 5 seconds): " nameecho "Hello, $name"
Tùy chọn -t thiết lập thời gian chờ. Trong ví dụ này, read sẽ đợi 5 giây để người dùng nhập tên của họ.

Đọc từ Tệp:
Mã:
while IFS= read -r linedo echo "Line: $line"done < filename.txt
Tập lệnh này đọc các dòng từ tệp có tên filename.txt từng cái một.

Tùy chọn dòng lệnh của lệnh đọc​

Sau đây là một số tùy chọn thường dùng của lệnh này:

  • -r: Tùy chọn này ngăn không cho dấu gạch chéo ngược hoạt động như ký tự thoát. Với -r, dấu gạch chéo ngược được coi là ký tự theo nghĩa đen. Điều này thường được khuyến nghị để đảm bảo rằng dữ liệu đầu vào được đọc chính xác, không có bất kỳ sự diễn giải không mong muốn nào về các ký tự thoát dấu gạch chéo ngược.

  • -p: Tùy chọn này cho phép bạn chỉ định lời nhắc hiển thị cho người dùng. Tùy chọn này thường được sử dụng khi bạn đang tương tác với người dùng và chờ họ nhập dữ liệu. Ví dụ, read -p "Enter your name: " name sẽ hiển thị "Nhập tên của bạn: " và sau đó lưu trữ thông tin đầu vào của người dùng trong biến name.

  • -a array: Tùy chọn này đọc từ đầu vào chuẩn và gán các từ đã đọc vào một mảng được lập chỉ mục. Điều này hữu ích khi đọc một dòng dữ liệu đầu vào vào một mảng, trong đó mỗi từ trở thành một phần tử của mảng.

  • -d delim: Tùy chọn -d chỉ định một ký tự phân cách để kết thúc dòng dữ liệu đầu vào, thay vì một ký tự xuống dòng. Ví dụ, read -d ":" var sẽ đọc dữ liệu đầu vào cho đến khi gặp ký tự dấu hai chấm.

  • -n num: Tùy chọn này có nội dung num ký tự thay vì một dòng hoàn chỉnh. Điều này hữu ích khi bạn cần giới hạn đầu vào ở một số ký tự cụ thể.

  • -s: Chế độ im lặng. Khi sử dụng -s, dữ liệu đầu vào do người dùng nhập sẽ không hiển thị trên màn hình. Điều này thường được sử dụng cho dữ liệu đầu vào nhạy cảm như mật khẩu.

  • -t timeout: Chỉ định thời gian chờ tính bằng giây. Nếu người dùng không cung cấp thông tin đầu vào trong số giây đã chỉ định, lệnh read sẽ kết thúc. Tùy chọn này hữu ích cho các tập lệnh mà bạn không muốn chờ vô thời hạn để người dùng nhập dữ liệu.

  • -u fd: Tùy chọn này yêu cầu read đọc dữ liệu nhập từ trình mô tả tệp fd thay vì đầu vào chuẩn. Đây là một tính năng nâng cao được sử dụng trong các tình huống mà bạn đang thao tác các mô tả tệp trong tập lệnh của mình.

  • -N num: Tương tự như -n, nhưng nó đọc num ký tự thay vì byte. Điều này đặc biệt liên quan trong bối cảnh của các ký tự nhiều byte.

  • -E: Được sử dụng với -p, tùy chọn này vô hiệu hóa việc diễn giải các ký tự thoát dấu gạch chéo ngược và tiếp tục dòng trong dấu nhắc string.

  • -i text: Tùy chọn này cung cấp văn bản ban đầu cho lệnh đọc. Tùy chọn này đặc biệt hữu ích khi cung cấp giá trị mặc định mà người dùng có thể chỉnh sửa.
Lệnh read là một công cụ mạnh mẽ trong tập lệnh Bash để xử lý dữ liệu đầu vào của người dùng và phân tích cú pháp văn bản. Bạn có thể kết hợp các tùy chọn này khi cần để phù hợp với yêu cầu cụ thể của mình.
 
Back
Bên trên