Câu trả lời:
Chúng đại diện cho các giá trị của cờ của vỏ; điều này được xác định bởi POSIX :
-(Dấu gạch nối.) Mở rộng sang các cờ tùy chọn hiện tại (tên tùy chọn một chữ cái được nối vào một chuỗi) như được chỉ định trong lệnh gọi, bằng lệnh tích hợp
setđặc biệt hoặc ẩn bởi trình bao.
Các nhãn hiệu Zsh đề cập đến nó một thời gian ngắn:
- <S> Cờ được cung cấp cho trình bao khi gọi hoặc bằng lệnh
sethoặcsetopt.
cũng như hướng dẫn Bash trong mô tả về set:
Các tùy chọn hiện tại có thể được tìm thấy trong
$-.
Để hiểu đầu ra của echo $-bạn, bạn cần tra cứu các tùy chọn trong hướng dẫn sử dụng. Ví dụ, trong Bash, echo $-kết quả đầu ra himBHsđối với tôi, đó có nghĩa rằng -h, -m, -Bvà -Htùy chọn được kích hoạt (xem help setđể biết chi tiết), mà vỏ là tương tác ( -i) và đọc từ đầu vào tiêu chuẩn ( -s).
man bash, hoặc help setnhư đã đề cập trước đó, hơn là man set.
ccờ có nghĩa là? Tôi thấy nó được đặt khi rsync đăng nhập và chạy .bashrc của tôi. Hướng dẫn bash cho setkhông đề cập c. Tôi đang chạy bash 4.2.46 (2).
-ctùy chọn dòng lệnh; thấy bash -c 'echo $-'.
đặt [+ abefhkmnptuvxBCEHPT] [+ o tên tùy chọn] [arg ...]
Không có tùy chọn, tên và giá trị của từng biến shell được hiển thị theo định dạng có thể được sử dụng lại làm đầu vào để đặt hoặc đặt lại các biến hiện được đặt.
...
Các tùy chọn được tắt theo mặc định trừ khi có ghi chú khác. Sử dụng + thay vì - làm cho các tùy chọn này bị tắt. Các tùy chọn cũng có thể được chỉ định làm đối số cho một lời gọi của shell. Tập hợp các tùy chọn hiện tại có thể được tìm thấy bằng $ -. Trạng thái trả về luôn luôn đúng trừ khi gặp phải tùy chọn không hợp lệ.
man set.