Lỗi Bash: syntax error near unexpected token là một trong những lỗi thường gặp khi làm việc trên Bash shell. Lỗi này thường xuất hiện khi có sai sót trong cú pháp lệnh, khiến Bash không thể hiểu và thực thi đúng yêu cầu của bạn. Bài viết dưới đây Vietnix sẽ giúp bạn tìm hiểu kỹ hơn về nguyên nhân gây ra lỗi và 2 ví dụ về cách khắc phục hiệu quả.
Nguyên nhân gây ra lỗi cú pháp không như mong muốn trong môi trường Bash
Lỗi Bash: syntax error near unexpected token (cú pháp không như mong muốn) thường xuất hiện khi bạn sử dụng dấu ngoặc đơn () hoặc dấu ngoặc nhọn <> không đúng cách trong lệnh Bash trên hệ điều hành Linux. Bash hiểu các dấu ngoặc này là các ký tự đặc biệt và bất kỳ lệnh nào có chứa dấu ngoặc sẽ gây ra lỗi.
Bên cạnh đó, bạn cần để ý những lỗi sai sót khi đánh máy như chính tả, cú pháp lệnh để tiện hiện lỗi không tìm thấy lệnh từ ban đầu Bash: command not found nhằm kịp thời cài đặt đường dẫn biến PATH để xử lý.
Ngoài ra, bạn có thể tham khảo các câu lệnh trong Linux để thực hiện tập lệnh (script) hiệu quả hơn xử lý các lỗi thường gặp trên môi trường Bash
2 ví dụ về cách xử lý lỗi Bash: syntax error near unexpected token
Ví dụ 1: Sử dụng dấu gạch chéo ngược trước dấu ngoặc đơn
Để tránh lỗi Bash: syntax error near unexpected token, bạn có thể thêm một dấu gạch chéo ngược \ trước mỗi dấu ngoặc đơn (). Khi bạn đặt \ trước dấu ngoặc đơn (), bash sẽ hiểu đó là một ký tự bình thường, không phải là ký tự đặc biệt dùng để nhóm lệnh hay thay thế lệnh.
Ví dụ: Để tạo thư mục có tên LinuxSimply(Bash), bạn hãy sử dụng lệnh mkdir sau:
mkdir LinuxSimply\(Bash\)
Như bạn thấy trong hình minh hoạ ở trên, lệnh ls -l
xác nhận thư mục LinuxSimply(Bash) đã được tạo thành công mà không gặp lỗi.
Ví dụ 2: Đặt đối số của lệnh trong dấu nháy đơn hoặc dấu nháy kép
Bạn cũng có thể đặt đối số của lệnh trong dấu nháy đơn ‘ ’ hoặc dấu nháy kép “ ” để ngăn Bash hiểu dấu ngoặc đơn là ký tự đặc biệt.
mkdir 'LinuxSimply(Basic)'
Như hình ở trên, dấu nháy đơn giúp tránh lỗi “syntax error near unexpected token” và tạo thư mục LinuxSimply(Basic) thành công. Bạn có thể kiểm tra lại bằng lệnh ls -l để xem danh sách các file và thư mục trong thư mục hiện tại.
Cách xử lý lỗi cú pháp gần dòng mới mã thông báo không mong muốn
Lỗi syntax error near unexpected token newline (cú pháp gần dòng mới mã thông báo không mong muốn) thường xảy ra khi sử dụng dấu ngoặc nhọn (<, >) không đúng cách trong lệnh Bash. Dấu ngoặc nhọn thường được dùng để chuyển hướng input/output của lệnh. Nếu không sử dụng đúng cách, Bash sẽ báo lỗi vì không tìm thấy dữ liệu hoặc lệnh sau dấu ngoặc nhọn.
Để sửa lỗi syntax error near unexpected token newline, bạn cần đảm bảo có file hoặc lệnh hợp lệ sau dấu ngoặc nhọn như hình minh hoạ bên dưới:
Trong trường hợp này, Fruit.txt là file văn bản chứa tên các loại trái cây chưa được sắp xếp. Lệnh sort sẽ chuyển hướng nội dung của file và trả về danh sách tên trái cây theo thứ tự bảng chữ cái.
Bên cạnh mục đích chuyển hướng, bạn có thể sử dụng dấu nháy đơn hoặc dấu nháy kép để bao quanh dấu ngoặc nhọn nếu cần hiển thị chúng theo đúng nghĩa đen:
Câu hỏi thường gặp
Cách sửa lỗi cú pháp error near unexpected token newline trong Bash?
Bạn hãy sử dụng dấu gạch chéo ngược \ trước các ký tự đặc biệt như dấu ngoặc đơn, dấu ngoặc nhọn hoặc đặt toàn bộ đối số của lệnh trong dấu nháy đơn ‘ ‘ hoặc kép ” “.
Làm thế nào để kiểm tra lỗi cú pháp trong Bash?
Bạn hãy sử dụng lệnh bash với tùy chọn -n
theo sau tên file script. Ví dụ:bash -n script_name.sh
Cách để sửa lỗi phân tích cú pháp unexpected token?
Bạn cần kiểm tra kỹ các cặp dấu mở và đóng như dấu nháy, ngoặc đơn, ngoặc nhọn và chú ý đến các ký tự đặc biệt cần thoát bằng dấu gạch chéo ngược \.
Ngoài ra bạn cần xác định dòng xảy ra lỗi và kiểm tra kỹ đoạn code xung quanh để tìm ra lỗi cú pháp.
Lời kết
Bài viết trên của Vietnix đã cung cấp đến bạn nguyên nhân dẫn đến và 2 ví dụ về cách khắc phục lỗi Bash: syntax error near unexpected token. Nắm rõ về lỗi này sẽ giúp bạn viết các script Bash chính xác và hiệu quả hơn. Chúc bạn thành công!