Câu trả lời của JohnC đã giải thích cho backtick. Nhưng những gì bạn cũng đang tự hỏi là >
nhắc nhở. Đây là một dấu nhắc tiếp tục và nó không chỉ được kích hoạt bởi một backtick, mà luôn luôn khi trình bao của bạn biết rõ bạn chưa hoàn thành việc nhập lệnh. Ví dụ đơn giản nhất là đặt tiếp tục dòng rõ ràng \
ở cuối dòng đầu vào (giúp phân tách đầu vào dài):
$ echo \
> hallo
Lưu ý rằng giống như PS1
điều khiển giao diện của dấu nhắc lệnh, bạn cũng có thể đặt PS2
để thay đổi lời nhắc tiếp tục, ví dụ:
$ export PS2="(cont.) "
$ echo \
(cont.) hallo
Có nhiều lý do cho việc tiếp tục xảy ra. Một backtick không đầy đủ, nhưng bạn cũng có thể nhập một cái gì đó như
ls -l `which cp`
trong một dòng duy nhất (lưu ý phụ: Nên sử dụng $(
và )
thay vào đó, vì các dấu ngoặc đơn làm cho việc mở rộng bắt đầu và kết thúc rõ ràng, trong khi các backticks đơn làm cho việc nhìn thấy nơi bị thiếu trở nên khó khăn hơn. Và lồng nhau ...). Các lý do có thể khác cho lời nhắc tiếp tục:
- mất tích
done
sau while
hoặcfor
- mất tích
fi
sau mộtif
- mất tích
esac
saucase
- một dấu ngoặc đơn đóng thiếu, ví dụ trong các ô con
(cd $HOME; cat .bashrc)
- một lệnh bị thiếu sau khi đường ống
|
cũng như thực thi có điều kiện ||
và &&
( &
mặc dù vậy, vì điều đó chỉ làm cho lệnh chạy ở chế độ nền)
- một trích dẫn kết thúc bị thiếu (
'
hoặc "
)
Thật kỳ lạ, một dấu ngoặc bị thiếu }
sau khi mở rộng biến ${
cũng gây ra dấu nhắc tiếp tục, nhưng sẽ thất bại do không gian được chèn:
$ echo ${
> PS2}
bash: ${
PS2}: bad substitution