[ShellScript] Hướng dẫn fix lỗi ambiguous redirect khi lập trình shell script

127

Khi bạn lập trình bash shell script thì bạn đôi khi sẽ gặp 1 trường hợp mang tên ‘ambiguous redirect‘. Thế nó là gì ? các trường hợp dẫn đến lỗi trên và giải pháp xử lý ?

Ví dụ lỗi :

 
1. Trường hợp 1 – sai tên biến = giá trị biến rỗng

– Trong trường hợp này đơn giản là bạn cần kiểm tra lại xem tên biến bạn đang sử dụng cho output chuyển hướng có đúng hay chưa ? Nếu trong trường hợp chưa đúng thì fix cho đúng nhé.
– Cũng trong trường hợp này, bạn cần kiểm tra xem biến của bạn đã được set giá trị nào hay chưa ? Nếu giả sử trong flow code bạn có code để set giá trị biến $TEST , thì lỡ như trong trường hợp ngoài ý muốn biến của bạn không nhận được giá trị nào thì nó trở thành biến rỗng -> dẫn đến phát sinh lỗi.

Ví dụ :

 
Giải pháp:
– Việc sai tên biến cũng đồng nghĩa biến có giá trị bằng rỗng.
– Kiểm tra lại tên biến !
– Kiểm tra giá biến có giá trị không rỗng hay không !

2. Trường hợp 2 – biến có cụm từ chứa khoảng trắng

– Trường hợp kế tiếp này, chúng ta sẽ đến với tình huống là biến $TEST không rỗng, có giá trị và đúng tên biến nhưng. …. : giá trị có chứa cụm từ có khoảng trống.

Ví dụ 2:

 
– Yo bạn thấy không, vì có khoảng trắng trong cụm từ giá trị của biến mà dẫn đến phát sinh lỗi này.

Giải pháp:
– Hãy luôn sử dụng dấu double-quote (” “) để rào chắn lại biến của bạn khi được gọi.
– Vì nếu bạn không để double-quote thì bash sẽ tự động chia giá trị biến có khoảng trắng $TEST ra để xử lý thay vì xử lý thành 1 cụm từ, việc double-quote sẽ chỉ cho bash việc phải xử lý giá trị biến đó thành 1 cụm duy nhất.

 
Ok như vậy 2 tình huống trên là 2 trường hợp dẫn đến phát sinh lỗi “ambiguous redirect” các bạn nhé. Cám ơn các bạn đã theo dõi bài viết.

Đánh giá sao từ người đọc :
[ Tổng : 0 - Trung bình: 0 ]

LEAVE A REPLY