Vỏ bash không tương tác của tôi có extglob off
. Tôi muốn bật nó trong câu lệnh ngay trước một lệnh, nhưng tôi nhận thấy rằng khi shopt -s extglob
ở trong một if .. then .. else
khối, bằng cách nào đó nó không đăng ký.
Lệnh phụ thuộc extglob sau đây không hợp lệ : syntax error near unexpected token '('
.
Nơi nào có thể extglob
được đặt, và tại sao có một hạn chế, ở tất cả? Điều này áp dụng cho các lựa chọn khác? ... GNU bash 4.1.5
Những công việc này:
shopt -s extglob
if true ;then
touch a.bcd; ls a.@(bcd)
fi
Điều này không thành công:
if true ;then
shopt -s extglob
touch a.bcd; ls a.@(bcd)
fi
... line 17: syntax error near unexpected token `('
... line 17: `touch a.bcd; ls a.@(bcd)'