Đây là hệ thống FreeBSD 7.x chạy GNU bash phiên bản 4.0.
Trong Bash, set -u
tùy chọn có thể buộc shell in lỗi nếu gặp biến không đặt, như sau:
$ set -u
$ echo $THISISUNSET
-su: THISISUNSET: unbound variable
$ echo $?
1
Tuy nhiên, tôi cũng gặp phải lỗi tương tự với $ *:
$ echo $*
-su: $*: unbound variable
$ echo $?
1
$ echo $@
-su: $@: unbound variable
Hướng dẫn Bash 4.3.1 Tập hợp dựng sẵn nói cụ thể set -u
bỏ qua $ * và $ @:
-u Xử lý các biến và tham số không đặt khác với các tham số đặc biệt '@' hoặc '*' là lỗi khi thực hiện mở rộng tham số. Một thông báo lỗi sẽ được ghi vào lỗi tiêu chuẩn và một vỏ không tương tác sẽ thoát.
Làm thế nào tôi có thể sửa lỗi này?