Được rồi, khi tôi chạy một số lệnh sai cách, (sai chính tả, v.v.) Thiết bị đầu cuối xuất ra cái này: >
thay vì computername:workingfolder username$
và khi tôi nhập enter, nó sẽ như sau:
>
>
>
Đó sẽ là nếu tôi nhấn enter 3 lần.
Được rồi, khi tôi chạy một số lệnh sai cách, (sai chính tả, v.v.) Thiết bị đầu cuối xuất ra cái này: >
thay vì computername:workingfolder username$
và khi tôi nhập enter, nó sẽ như sau:
>
>
>
Đó sẽ là nếu tôi nhấn enter 3 lần.
Câu trả lời:
>
là lời nhắc tiếp tục mặc định. Đó là những gì bạn sẽ thấy nếu những gì bạn đã nhập trước đó có dấu ngoặc kép không cân bằng.
Ví dụ: nhập một trích dẫn trên dòng lệnh theo sau là một vài enter
phím:
$ '
>
>
>
Các lời nhắc tiếp tục sẽ xảy ra cho đến khi bạn
(a) hoàn thành lệnh với dấu ngoặc kép đóng
hoặc là
(b) gõ Ctrl+ Dđể kết thúc đầu vào, tại đó, vỏ sẽ phản hồi với thông báo lỗi về các trích dẫn không cân bằng,
hoặc là
(c) loại Ctrl+ Csẽ hủy bỏ lệnh mà bạn đang nhập.
Đôi khi, bạn có thể muốn nhập một chuỗi chứa các dòng mới được nhúng. Bạn có thể làm như sau:
$ paragraph='first line
> second line
> third line
> end'
Bây giờ, khi chúng tôi hiển thị biến shell đó, bạn có thể thấy rằng các lời nhắc đã biến mất nhưng các dòng mới được giữ lại:
$ echo "$paragraph"
first line
second line
third line
end
Điều đó sẽ xảy ra nếu bạn có một trích dẫn không được tiết lộ trong lệnh của bạn. Đó là một cái gì đó như:
$ echo "test here
>
>
...
Bạn có thể thoát khỏi chế độ đó bằng cách đóng quote (ghi một "
hoặc '
, hoặc bất cứ quote mở của bạn là). Nó cũng có thể là một khối được phân định bằng dấu ngoặc, một phần hoàn chỉnh for-do
hoặc while-do
vòng lặp hoặc một số cấu trúc khác. Bạn cũng có thể nhấn Ctrl-Cđể hủy lệnh này (sau đó nhấn Upđể sửa lại).
Điều này đôi khi có thể xảy ra mà không có trích dẫn thiếu rõ ràng khi mở rộng tham số hoặc lịch sử xảy ra khi bạn không mong đợi chúng.
Giá trị >
của bạn PS2
("dấu nhắc phụ"). Bạn có thể thay đổi điều đó thành điều khác để nhắc nhở bạn những gì đã xảy ra:
PS2="Unclosed >"
thay vào đó, bạn .bashrc
sẽ làm cho nó được in Unclosed >
ở đầu mỗi dòng thay thế.
Ngoài các câu trả lời khác, bạn cũng nhận được lời nhắc tiếp tục khi bạn nhập a \
làm ký tự cuối cùng trên một dòng.
Câu trả lời nằm trong đề cập khó hiểu này trong Hướng dẫn tham khảo Bash :
5.1 Biến Bourne Shell
[...]
PS1
: Chuỗi dấu nhắc chính. Giá trị mặc định là '\s-\v\$
'. Xem phần In Nhắc , để biết danh sách đầy đủ các chuỗi thoát được mở rộng trước khiPS1
được hiển thị.PS2
: Chuỗi dấu nhắc phụ. Giá trị mặc định là '>
'.
... tiếp theo :
6.3.3 Hành vi vỏ tương tác
- Bash mở rộng và hiển thị
PS1
trước khi đọc dòng đầu tiên của lệnh, và mở rộng và hiển thịPS2
trước khi đọc dòng thứ hai và tiếp theo của lệnh đa dòng.
Vì vậy, >
lời nhắc xuất hiện nếu bạn nhấn Entervà Bash xác định rằng lệnh không đầy đủ. Đó có thể là vì:
\
, được coi là tiếp tục dòng .$()
, ()
, ``
.for
vòng lặp, một while
vòng lặp hoặc một case
.Nếu bạn đang thấy dấu nhắc phụ do lỗi gõ không chủ ý, hãy nhấn ControlCđể quay lại dấu nhắc chính.