Trong những tình huống nào là PS3, PS3, PS4 được sử dụng như lời nhắc?


31

Khi tôi đăng nhập vào shell, tôi thấy dấu nhắc có giá trị được lưu trong PS1.

Tôi cũng gặp một dấu nhắc khác (nhưng không biết cái nào) khi tôi sử dụng cú pháp tài liệu ở đây:

bc << HERE
>

Nhưng đó là tất cả các loại lời nhắc. Tôi đã gặp phải cho đến nay. Những loại tình huống gợi lên các loại nhắc nhở khác nhau?

Câu trả lời:


43

Đây là những gì tài liệu bash nói:

PS1    The  value  of  this parameter is expanded (see PROMPTING below)
       and used as the primary prompt string.   The  default  value  is
       ``\s-\v\$ ''.
PS2    The  value of this parameter is expanded as with PS1 and used as
       the secondary prompt string.  The default is ``> ''.
PS3    The value of this parameter is used as the prompt for the select
       command (see SHELL GRAMMAR above).
PS4    The  value  of  this  parameter  is expanded as with PS1 and the
       value is printed before each command  bash  displays  during  an
       execution  trace.  The first character of PS4 is replicated mul
       tiple times, as necessary, to indicate multiple levels of  indi
       rection.  The default is ``+ ''.

Vì vậy, PS1là dấu nhắc "chờ lệnh" thông thường của bạn, PS2là lời nhắc tiếp tục mà bạn đã thấy sau khi nhập lệnh chưa hoàn tất, PS3được hiển thị khi selectlệnh đang chờ nhập và PS4là tiền tố dòng theo dõi gỡ lỗi.

Tài liệu tôi trích dẫn không nói như vậy, nhưng mặc định PS3trong bash là #?:

$ select x in foo bar baz; do echo $x; done
1) foo
2) bar
3) baz
#? 3
baz
#? 2
bar
#? ^C

2
hoàn hảo!!! Lệnh chọn để làm gì?
Abdul Al Hazred

10
selectlà một cách bash để làm các menu tương tác đơn giản, xem ss64.com/bash/select.html để biết mô tả đầy đủ hơn.
dhag

@dhag, vậy nó như thế if else..nào?
Pacerier
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.