Có thể bỏ qua các đối số tùy chọn không xác định bằng GNU getopt không?GNU getopt của Linux: bỏ qua các đối số tùy chọn không xác định?
Tôi có một tập lệnh, scriptA.sh, có đối số tùy chọn --optA, --optB, --optC, --optD
.
Tôi muốn viết trình bao bọc, wrapperA, với hai đối số tùy chọn, --optX and --optY
, gọi số scriptA
. Tuy nhiên, tôi không muốn khai báo tất cả các tham số tùy chọn của scriptA bên trong trình bao bọc.
Đặc biệt, nếu bên wrapperA
, tôi chỉ định đối số tùy chọn với
getopt --longoptions optX:,optY:
cuộc gọi
wrapperA --optX --optA --optB
trả về một lỗi
getopt: unknown option -- optA
GNU getopt có thể bị buộc phải bỏ qua chưa biết đối số và đặt chúng sau '-' trong đầu ra của nó?
Cảm ơn bạn đã trả lời của bạn.Dấu gạch ngang kép để chấm dứt danh sách tùy chọn sẽ hoạt động trong trường hợp của tôi. Đối với bỏ qua các tùy chọn không xác định, tôi thấy quan điểm của bạn - nó không phải là dễ dàng như nó trông. Ý tưởng ban đầu của tôi là đẩy tất cả các tùy chọn không xác định phía sau - trong đầu ra getopt (--với nguồn foo mẫu - chế độ). Tuy nhiên, điều này sẽ chỉ hoạt động nếu xử lý thông số tiếp theo được chuyển sang bản gốc. Như bạn đã nói, hàm wrapperscript không có cách nào để biết các tham số của bản gốc có tham số hay không. – user3830744
Đã xảy ra sự cố tương tự, dấu gạch ngang kép hoạt động như một sự quyến rũ. –