Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

bash-static - Trực tuyến trên đám mây

Chạy bash-static trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh bash-static có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


bash - GNU Bourne-Again Shell

SYNOPSIS


bash [tùy chọn] [command_string | tập tin]

BẢN QUYỀN


Bash là Bản quyền (C) 1989-2013 bởi Free Software Foundation, Inc.

MÔ TẢ


Cú đánh là một sh- trình thông dịch ngôn ngữ lệnh tương thích thực thi các lệnh được đọc từ
đầu vào tiêu chuẩn hoặc từ một tệp. Cú đánh cũng kết hợp các tính năng hữu ích từ KornC
vỏ sò (kshcsh).

Cú đánh nhằm mục đích triển khai tuân thủ phần Shell và Utilities của
thông số kỹ thuật IEEE POSIX (IEEE Standard 1003.1). Cú đánh có thể được định cấu hình để trở thành POSIX-
theo mặc định.

LỰA CHỌN


Tất cả các tùy chọn trình bao gồm một ký tự được ghi lại trong mô tả của định
lệnh nội trang có thể được sử dụng như các tùy chọn khi trình bao được gọi. Ngoài ra, bash
diễn giải các tùy chọn sau khi nó được gọi:

-c Nếu -c tùy chọn hiện diện, sau đó các lệnh được đọc từ tùy chọn đầu tiên
đối số lệnh_string. Nếu có các đối số sau lệnh_string, Họ
được gán cho các tham số vị trí, bắt đầu bằng $0.
-i Nếu -i tùy chọn là hiện tại, vỏ là tương tác.
-l Hãy bash hoạt động như thể nó đã được gọi như một trình bao đăng nhập (xem MỜI dưới đây).
-r Nếu -r tùy chọn hiện diện, trình bao trở thành hạn chế (xem HẠN CHẾ SHELL
dưới đây).
-s Nếu -s tùy chọn hiện có hoặc nếu không có đối số nào còn lại sau khi xử lý tùy chọn,
thì các lệnh được đọc từ đầu vào chuẩn. Tùy chọn này cho phép
các tham số vị trí được đặt khi gọi một trình bao tương tác.
-D Danh sách tất cả các chuỗi được trích dẫn kép đứng trước $ được in trên tiêu chuẩn
đầu ra. Đây là các chuỗi có thể dịch ngôn ngữ khi
ngôn ngữ hiện tại không phải là C or POSIX. Điều này ngụ ý -n Lựa chọn; không có lệnh sẽ
được thực thi.
[- +] O [shopt_option]
shopt_option là một trong những tùy chọn shell được chấp nhận bởi xô đẩy nội trang (xem
SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG phía dưới). Nếu như shopt_option là quà tặng, -O đặt giá trị của
tùy chọn đó; +O gỡ bỏ nó. Nếu như shopt_option không được cung cấp, tên và
giá trị của các tùy chọn shell được chấp nhận bởi xô đẩy được in trên tiêu chuẩn
đầu ra. Nếu tùy chọn gọi là +O, đầu ra được hiển thị ở định dạng
có thể được sử dụng lại làm đầu vào.
-- A -- báo hiệu sự kết thúc của các tùy chọn và vô hiệu hóa quá trình xử lý tùy chọn tiếp theo. Không tí nào
đối số sau -- được coi là tên tệp và đối số. Một đối số của -
tương đương với --.

Cú đánh cũng giải thích một số tùy chọn nhiều ký tự. Các tùy chọn này phải xuất hiện trên
dòng lệnh trước các tùy chọn ký tự đơn được nhận dạng.

--trình gỡ lỗi
Sắp xếp để cấu hình trình gỡ lỗi được thực thi trước khi trình bao khởi động. Bật lên
chế độ gỡ lỗi mở rộng (xem mô tả của người tống tiền tùy chọn cho xô đẩy
nội trang bên dưới).
--dump-po-string
Tương đương với -D, nhưng đầu ra nằm trong GNU gettext po (đối tượng di động) tệp
định dạng.
--dump-string
Tương đương với -D.
--Cứu giúp Hiển thị thông báo sử dụng trên đầu ra tiêu chuẩn và thoát thành công.
--init-tệp hồ sơ
--rcfile hồ sơ
Thực thi các lệnh từ hồ sơ thay vì tệp khởi tạo trên toàn hệ thống
/etc/bash.bashrc và tệp khởi tạo cá nhân tiêu chuẩn ~ / .bashrc nếu
shell là tương tác (xem MỜI dưới đây).

--đăng nhập
Tương đương với -l.

- ghi chú
Không sử dụng GNU đường dẫn thư viện để đọc các dòng lệnh khi trình bao
tương tác.

--không có hồ sơ
Không đọc tệp khởi động trên toàn hệ thống / etc / profile hoặc bất kỳ cá nhân nào
các tập tin khởi tạo ~ / .bash_profile, ~ / .bash_login, hoặc là ~ / .profile. Theo mặc định,
bash đọc các tệp này khi nó được gọi dưới dạng trình bao đăng nhập (xem MỜI dưới đây).

--norc Không đọc và thực thi tệp khởi tạo trên toàn hệ thống /etc/bash.bashrc
tệp khởi tạo cá nhân ~ / .bashrc nếu shell là tương tác. Cái này
tùy chọn được bật theo mặc định nếu trình bao được gọi là sh.

--posix
Thay đổi hành vi của bash nơi hoạt động mặc định khác với POSIX
tiêu chuẩn để phù hợp với tiêu chuẩn (posix chế độ). Xem XEM CŨNG THẾ dưới đây để tham khảo
một tài liệu trình bày chi tiết cách chế độ posix ảnh hưởng đến hành vi của bash.

--hạn chế
Vỏ trở nên hạn chế (xem HẠN CHẾ SHELL dưới đây).

--dài dòng
Tương đương với -v.

--phiên bản
Hiển thị thông tin phiên bản cho phiên bản này của bash trên đầu ra tiêu chuẩn và thoát ra
thành công.

TRANH LUẬN


Nếu các đối số vẫn còn sau khi xử lý tùy chọn và cả -c cũng không phải -s tùy chọn đã được
được cung cấp, đối số đầu tiên được giả định là tên của tệp chứa shell
các lệnh. Nếu như bash được gọi theo cách này, $0 được đặt thành tên của tệp và
tham số vị trí được đặt thành các đối số còn lại. Cú đánh đọc và thực hiện
lệnh từ tệp này, sau đó thoát. Cú đánhtrạng thái thoát là trạng thái thoát cuối cùng
lệnh được thực thi trong tập lệnh. Nếu không có lệnh nào được thực hiện, trạng thái thoát là 0. An
lần đầu tiên được thực hiện để mở tệp trong thư mục hiện tại và, nếu không tìm thấy tệp,
sau đó shell tìm kiếm các thư mục trong PATH cho kịch bản.

MỜI


A đăng nhập shell là một đối số có ký tự đầu tiên của đối số XNUMX là -hoặc một người bắt đầu bằng
các --đăng nhập tùy chọn.

An tương tác shell là một trong những bắt đầu mà không có đối số không phải tùy chọn và không có -c tùy chọn
có đầu vào tiêu chuẩn và lỗi đều được kết nối với thiết bị đầu cuối (như được xác định bởi
không ổn định(3)), hoặc một cái bắt đầu bằng -i tùy chọn. PS1 được thiết lập và $- bao gồm i if bash is
tương tác, cho phép một tập lệnh shell hoặc một tệp khởi động để kiểm tra trạng thái này.

Các đoạn văn sau mô tả cách bash thực thi các tệp khởi động của nó. Nếu bất kỳ
tệp tồn tại nhưng không thể đọc được, bash báo lỗi. Dấu nghiêng được mở rộng trong tên tệp
như được mô tả bên dưới dưới dấu ngã Sự bành trướng trong SỰ BÀNH TRƯỚNG phần.

Thời Gian bash được gọi như một trình bao đăng nhập tương tác hoặc như một trình bao không tương tác với
--đăng nhập tùy chọn, trước tiên nó đọc và thực thi các lệnh từ tệp / etc / profile, Nếu đó
File tồn tại. Sau khi đọc tệp đó, nó sẽ tìm kiếm ~ / .bash_profile, ~ / .bash_login
~ / .profile, theo thứ tự đó và đọc và thực hiện các lệnh từ lệnh đầu tiên tồn tại
và có thể đọc được. Các --không có hồ sơ tùy chọn có thể được sử dụng khi trình bao bắt đầu ức chế
hành vi này.

Khi một trình bao đăng nhập thoát ra, bash đọc và thực hiện các lệnh từ tệp ~ / .bash_logout,
nếu nó tồn tại.

Khi một trình bao tương tác không phải là một trình bao đăng nhập được khởi động, bash đọc và thực hiện
lệnh từ /etc/bash.bashrc~ / .bashrc, nếu những tệp này tồn tại. Điều này có thể bị ức chế
bằng cách sử dụng --norc Lựa chọn. Các --rcfile hồ sơ tùy chọn sẽ buộc bash đọc và thực thi
lệnh từ hồ sơ thay vì /etc/bash.bashrc~ / .bashrc.

Thời Gian bash được khởi động không tương tác, để chạy một tập lệnh shell, chẳng hạn, nó sẽ tìm kiếm
biến BASH_ENV trong môi trường, mở rộng giá trị của nó nếu nó xuất hiện ở đó và sử dụng
giá trị được mở rộng làm tên của tệp để đọc và thực thi. Cú đánh cư xử như thể
lệnh sau đã được thực thi:
if [-n "$ BASH_ENV"]; sau đó . "$ BASH_ENV"; fi
nhưng giá trị của PATH biến không được sử dụng để tìm kiếm tên tệp.

If bash được gọi với tên sh, nó cố gắng bắt chước hành vi khởi động của lịch sử
phiên bản của sh càng chặt chẽ càng tốt, đồng thời tuân thủ tiêu chuẩn POSIX.
Khi được gọi dưới dạng một trình bao đăng nhập tương tác hoặc một trình bao không tương tác với --đăng nhập
tùy chọn, nó đầu tiên cố gắng đọc và thực thi các lệnh từ / etc / profile~ / .profile,
theo thứ tự đó. Các --không có hồ sơ có thể được sử dụng để ngăn chặn hành vi này. Khi được gọi
như một trình bao tương tác với tên sh, bash tìm kiếm biến ENV, mở rộng nó
giá trị nếu nó được xác định và sử dụng giá trị được mở rộng làm tên của tệp để đọc và
hành hình. Vì một shell được gọi là sh không cố gắng đọc và thực hiện các lệnh từ
bất kỳ tệp khởi động nào khác, --rcfile tùy chọn không có hiệu lực. Một trình bao không tương tác
được gọi với tên sh không cố gắng đọc bất kỳ tệp khởi động nào khác. Khi được gọi
as sh, bash đi vào posix chế độ sau khi các tệp khởi động được đọc.

Thời Gian bash được bắt đầu trong posix chế độ, như với --posix tùy chọn dòng lệnh, nó tuân theo
tiêu chuẩn POSIX cho các tệp khởi động. Trong chế độ này, các trình bao tương tác mở rộng ENV
biến và các lệnh được đọc và thực thi từ tệp có tên được mở rộng
giá trị. Không có tệp khởi động nào khác được đọc.

Cú đánh cố gắng xác định khi nào nó đang được chạy với đầu vào tiêu chuẩn được kết nối với
kết nối mạng, như khi được thực thi bởi daemon shell từ xa, thường rshd, Hoặc
daemon shell an toàn sshd. Nếu bash xác định rằng nó đang được chạy theo kiểu này, nó đọc
và thực hiện các lệnh từ ~ / .bashrc~ / .bashrc, nếu các tệp này tồn tại và có thể đọc được.
Nó sẽ không làm điều này nếu được gọi là sh. Các --norc tùy chọn có thể được sử dụng để ngăn chặn điều này
hành vi và --rcfile có thể được sử dụng để buộc một tệp khác được đọc, nhưng
cũng không rshd cũng không sshd thường gọi shell với các tùy chọn đó hoặc cho phép chúng
được chỉ định.

Nếu trình bao được bắt đầu với id người dùng (nhóm) hiệu dụng không bằng người dùng thực
id (nhóm) và -p tùy chọn không được cung cấp, không có tệp khởi động nào được đọc, các chức năng của trình bao
không được thừa hưởng từ môi trường, VỎ, BASHOP, CDPATHTOÀN CẦU
các biến, nếu chúng xuất hiện trong môi trường, sẽ bị bỏ qua và id người dùng hiệu quả là
đặt thành id người dùng thực. Nếu -p tùy chọn được cung cấp khi gọi, hành vi khởi động
giống nhau, nhưng id người dùng hiệu quả không được đặt lại.

ĐỊNH NGHĨA


Các định nghĩa sau đây được sử dụng trong suốt phần còn lại của tài liệu này.
trống Dấu cách hoặc tab.
lời Một chuỗi các ký tự được coi là một đơn vị duy nhất bởi shell. Còn được gọi là
mã thông báo.
tên A lời chỉ bao gồm các ký tự chữ và số, dấu gạch dưới và phần đầu
với một ký tự chữ cái hoặc một dấu gạch dưới. Còn được gọi là định danh.
siêu nhân vật
Một ký tự, khi không được trích dẫn, sẽ phân tách các từ. Một trong những điều sau đây:
| & ; ( ) < > không gian chuyển hướng
điều khiển nhà điều hành
A mã thông báo thực hiện một chức năng điều khiển. Nó là một trong những biểu tượng sau:
|| & && ; ;; ( ) | |&

KÍN ĐÁO TỪ


Kín đáo từ là những từ có ý nghĩa đặc biệt đối với lớp vỏ. Những từ sau
được công nhận là dành riêng khi không được trích dẫn và là từ đầu tiên của một lệnh đơn giản
(xem SHELL NGỮ PHÁP dưới đây) hoặc từ thứ ba của một trường hợp or cho chỉ huy:

! trường hợp đồng bào do thực hiện elif khác nó C fi cho chức năng if in chọn sau đó cho đến khi trong khi { }
thời gian [[ ]]

SHELL NGỮ PHÁP


Đơn giản Lệnh
A đơn giản lệnh là một chuỗi các phép gán biến tùy chọn, theo sau là trống-
các từ được phân tách và chuyển hướng, và được kết thúc bằng điều khiển nhà điều hành. Từ đầu tiên
chỉ định lệnh sẽ được thực thi và được chuyển dưới dạng đối số không. Các từ còn lại
được chuyển dưới dạng đối số cho lệnh được gọi.

Giá trị trả về của một đơn giản lệnh là trạng thái thoát của nó, hoặc 128+n nếu lệnh là
kết thúc bằng tín hiệu n.

Đường ống
A đường ống dẫn là một chuỗi gồm một hoặc nhiều lệnh được phân tách bằng một trong các toán tử điều khiển
| or |&. Định dạng cho một đường ống là:

[thời gian [-p]] [! ] lệnh [[||&] lệnh2 ...]

Đầu ra tiêu chuẩn của lệnh được kết nối qua một đường ống với đầu vào tiêu chuẩn của lệnh2.
Kết nối này được thực hiện trước bất kỳ chuyển hướng nào được chỉ định bởi lệnh (xem
CHỈNH SỬA phía dưới). Nếu như |& Được sử dụng, lệnhlỗi tiêu chuẩn, ngoài tiêu chuẩn của nó
đầu ra, được kết nối với lệnh2đầu vào tiêu chuẩn của thông qua đường ống; nó là viết tắt của
2> & 1 |. Sự chuyển hướng ngầm định này của lỗi tiêu chuẩn sang đầu ra tiêu chuẩn là
được thực hiện sau bất kỳ chuyển hướng nào được chỉ định bởi lệnh.

Trạng thái trả về của một đường ống là trạng thái thoát của lệnh cuối cùng, trừ khi
cái ống nước tùy chọn được kích hoạt. Nếu như cái ống nước được bật, trạng thái trả lại của đường ống là
giá trị của lệnh cuối cùng (ngoài cùng bên phải) để thoát với trạng thái khác XNUMX hoặc bằng XNUMX nếu tất cả
lệnh thoát thành công. Nếu từ dành riêng ! trước một đường ống, trạng thái thoát
của đường ống đó là sự phủ định logic của trạng thái thoát như được mô tả ở trên. Cái vỏ
đợi tất cả các lệnh trong đường dẫn kết thúc trước khi trả về một giá trị.

Nếu thời gian từ dành riêng đứng trước một đường dẫn, thời gian trôi qua cũng như người dùng và hệ thống
được tiêu thụ bởi quá trình thực thi của nó được báo cáo khi đường ống kết thúc. Các -p tùy chọn
thay đổi định dạng đầu ra thành định dạng được chỉ định bởi POSIX. Khi vỏ trong posix chế độ, Nó
không nhận ra thời gian như một từ dành riêng nếu mã thông báo tiếp theo bắt đầu bằng dấu `- '. Các
ĐỊNH DẠNG THỜI GIAN biến có thể được đặt thành một chuỗi định dạng chỉ định cách thời gian
thông tin nên được hiển thị; xem mô tả của ĐỊNH DẠNG THỜI GIAN Dưới Shell Biến
phía dưới.

Khi vỏ trong posix chế độ, thời gian có thể được theo sau bởi một dòng mới. Trong trường hợp này,
shell hiển thị tổng người dùng và thời gian hệ thống mà shell và con của nó tiêu thụ. Các
ĐỊNH DẠNG THỜI GIAN có thể được sử dụng để xác định định dạng của thông tin thời gian.

Mỗi lệnh trong một đường ống được thực thi như một quá trình riêng biệt (tức là trong một vỏ con).

Chức năng
A là một chuỗi gồm một hoặc nhiều đường ống được phân tách bởi một trong những người vận hành ;, &, &&,
or ||, và có thể bị chấm dứt bởi một trong các ;, &, hoặc là .

Trong số các toán tử danh sách này, &&|| có quyền ưu tiên ngang nhau, theo sau là ;&, trong đó có
ưu tiên bình đẳng.

Một chuỗi gồm một hoặc nhiều dòng mới có thể xuất hiện trong một thay vì dấu chấm phẩy để phân tách
lệnh.

Nếu một lệnh bị kết thúc bởi người điều khiển &, shell thực hiện lệnh trong
các lý lịch tóm lại. Trình bao không đợi lệnh kết thúc, và
trạng thái trả về là 0. Các lệnh cách nhau bởi dấu ; được thực hiện tuần tự; cái vỏ chờ đợi
cho mỗi lệnh chấm dứt lần lượt. Trạng thái trả lại là trạng thái thoát của
lệnh được thực thi.

Danh sách VÀ và HOẶC là chuỗi của một trong nhiều đường ống được phân tách bằng &&|| điều khiển
các toán tử tương ứng. Danh sách AND và OR được thực thi với phép kết hợp trái. AN VÀ
danh sách có dạng

lệnh1 && lệnh2

lệnh2 được thực thi nếu và chỉ khi, lệnh1 trả về trạng thái thoát bằng XNUMX.

Một danh sách HOẶC có dạng

lệnh1 || lệnh2

lệnh2 được thực thi nếu và chỉ khi lệnh1 trả về trạng thái thoát khác XNUMX. Sự trở lại
trạng thái của danh sách VÀ và HOẶC là trạng thái thoát của lệnh cuối cùng được thực hiện trong danh sách.

Hợp chất Lệnh
A hợp chất lệnh là một trong những điều sau đây. Trong hầu hết các trường hợp a trong một lệnh
mô tả có thể được phân tách khỏi phần còn lại của lệnh bằng một hoặc nhiều dòng mới, và có thể
được theo sau bởi một dòng mới thay cho dấu chấm phẩy.

( ) được thực thi trong môi trường vỏ con (xem COMMAND CHẤP HÀNH MÔI TRƯỜNG
phía dưới). Các phép gán có thể thay đổi và các lệnh nội trang ảnh hưởng đến trình bao
môi trường không còn hiệu lực sau khi lệnh hoàn tất. Tình trạng trả hàng
là trạng thái thoát của .

{ ; }
được thực thi đơn giản trong môi trường shell hiện tại. phải được chấm dứt
bằng một dòng mới hoặc dấu chấm phẩy. Điều này được gọi là nhóm lệnh. Tình trạng trả hàng
là trạng thái thoát của . Lưu ý rằng không giống như siêu ký tự (), {}
đang Ltd từ và phải xảy ra khi một từ dành riêng được phép
được công nhận. Vì chúng không gây ra ngắt từ nên chúng phải được tách ra khỏi
bởi khoảng trắng hoặc một siêu ký tự bao khác.

((biểu hiện))
Sản phẩm biểu hiện được đánh giá theo các quy tắc được mô tả bên dưới theo MÔN SỐ HỌC
ĐÁNH GIÁ. Nếu giá trị của biểu thức khác 0, trạng thái trả về là XNUMX;
nếu không, trạng thái trả về là 1. Điều này chính xác tương đương với cho phép "biểu hiện".

[[ biểu hiện ]]
Trả về trạng thái 0 hoặc 1 tùy thuộc vào đánh giá của biểu thức điều kiện
biểu hiện. Biểu thức bao gồm các phiếu bầu cơ bản được mô tả bên dưới
ĐIỀU KIỆN BIỂU THỨC. Việc tách từ và mở rộng tên đường dẫn không được thực hiện
trên các từ giữa [[]]; khai triển dấu ngã, tham số và biến
mở rộng, mở rộng số học, thay thế lệnh, thay thế quy trình và
loại bỏ báo giá được thực hiện. Các toán tử có điều kiện như -f phải được bỏ phiếu cho
được công nhận là bầu cử sơ bộ.

Khi sử dụng với [[, Các <> toán tử sắp xếp theo từ điển bằng cách sử dụng hiện tại
địa phương.

Xem mô tả của thử nghiệm lệnh nội trang (phần SHELL BUILTIN COMMANDS bên dưới) cho
việc xử lý các tham số (tức là các tham số bị thiếu).

Khi ==!= toán tử được sử dụng, chuỗi ở bên phải của toán tử là
được coi là một mẫu và phù hợp theo các quy tắc được mô tả bên dưới Họa tiết
Phù hợp, như thể extglob tùy chọn shell đã được kích hoạt. Các = toán tử tương đương với
==. Nếu tùy chọn vỏ không có trường hợp được kích hoạt, trận đấu được thực hiện mà không liên quan đến
trường hợp của các ký tự chữ cái. Giá trị trả về là 0 nếu chuỗi khớp với (==) hoặc
không phù hợp với (!=) kiểu mẫu, và 1 kiểu khác. Bất kỳ phần nào của mô hình có thể được trích dẫn
để buộc phần được trích dẫn phải được so khớp dưới dạng một chuỗi.

Một toán tử nhị phân bổ sung, =~, có sẵn, với cùng mức độ ưu tiên như ==!=.
Khi nó được sử dụng, chuỗi ở bên phải của toán tử được coi là một chuỗi chính quy mở rộng
biểu thức và được kết hợp tương ứng (như trong biểu thức chính quy(3)). Giá trị trả về là 0 nếu chuỗi
phù hợp với mô hình và 1 nếu không. Nếu biểu thức chính quy là cú pháp
không chính xác, giá trị trả về của biểu thức điều kiện là 2. Nếu tùy chọn shell
không có trường hợp được kích hoạt, trận đấu được thực hiện mà không liên quan đến chữ cái
nhân vật. Bất kỳ phần nào của mẫu có thể được trích dẫn để buộc phần được trích dẫn phải
được so khớp dưới dạng một chuỗi. Biểu thức ngoặc trong biểu thức chính quy phải được xử lý
cẩn thận, vì các ký tự trích dẫn bình thường mất ý nghĩa giữa các dấu ngoặc. Nếu
mẫu được lưu trữ trong một biến shell, việc trích dẫn biến mở rộng buộc toàn bộ
mô hình được so khớp dưới dạng một chuỗi. Các chuỗi con được so khớp bởi biểu thức con trong ngoặc đơn
trong biểu thức chính quy được lưu trong biến mảng BASH_REMATCH. Phần tử
of BASH_REMATCH với chỉ mục 0 là phần của chuỗi khớp với toàn bộ
biểu hiện. Yếu tố của BASH_REMATCH với chỉ mục n là một phần của chuỗi
phù hợp với nbiểu thức con có dấu ngoặc đơn.

Các biểu thức có thể được kết hợp bằng cách sử dụng các toán tử sau, được liệt kê theo thứ tự giảm dần của
quyền ưu tiên:

( biểu hiện )
Trả về giá trị của biểu hiện. Điều này có thể được sử dụng để ghi đè thông thường
ưu tiên của toán tử.
! biểu hiện
Đúng nếu biểu hiện là sai.
biểu thức1 && biểu thức2
Đúng nếu cả hai biểu thức1biểu thức2 là sự thật
biểu thức1 || biểu thức2
Đúng nếu một trong hai biểu thức1 or biểu thức2 là đúng.

Sản phẩm &&|| các nhà khai thác không đánh giá biểu thức2 nếu giá trị của biểu thức1 is
đủ để xác định giá trị trả về của toàn bộ biểu thức điều kiện.

cho tên [[ in [ lời hữu ích. Cảm ơn ! ]]; ] do ; thực hiện
Danh sách các từ sau in được mở rộng, tạo ra một danh sách các mục. Các
biến tên được đặt lần lượt cho từng phần tử của danh sách này và được thực hiện
mỗi lần. Nếu in lời bị bỏ qua, cho lệnh thực thi một lần cho mỗi
tham số vị trí được đặt (xem THÔNG SỐ phía dưới). Trạng thái trả lại là
trạng thái thoát của lệnh cuối cùng được thực thi. Nếu sự mở rộng của các mặt hàng
tiếp theo in dẫn đến một danh sách trống, không có lệnh nào được thực thi và trả về
trạng thái là 0.

cho (( expr1 ; expr2 ; expr3 )); do ; thực hiện
Đầu tiên, biểu thức số học expr1 được đánh giá theo các quy tắc
được mô tả bên dưới dưới MÔN SỐ HỌC ĐÁNH GIÁ. Biểu thức số học expr2 is
sau đó được đánh giá lặp lại cho đến khi nó đánh giá bằng không. Mỗi lần expr2 đánh giá
một giá trị khác XNUMX, được thực thi và biểu thức số học expr3 is
đã đánh giá. Nếu bất kỳ biểu thức nào bị bỏ qua, nó sẽ hoạt động như thể nó đánh giá là 1.
giá trị trả về là trạng thái thoát của lệnh cuối cùng trong được thực thi, hoặc
false nếu bất kỳ biểu thức nào không hợp lệ.

chọn tên [ in lời ]; do ; thực hiện
Danh sách các từ sau in được mở rộng, tạo ra một danh sách các mục. Bộ
các từ mở rộng được in trên lỗi tiêu chuẩn, mỗi từ đứng trước một số. Nếu
in lời bị bỏ qua, các tham số vị trí được in (xem THÔNG SỐ dưới đây).
Sản phẩm PS3 sau đó lời nhắc sẽ được hiển thị và một dòng được đọc từ đầu vào chuẩn. Nếu
dòng bao gồm một số tương ứng với một trong các từ được hiển thị, sau đó
giá trị của tên được đặt thành từ đó. Nếu dòng trống, các từ và lời nhắc sẽ
hiển thị lại. Nếu EOF được đọc, lệnh hoàn tất. Mọi giá trị khác đã đọc
nguyên nhân tên được đặt thành null. Dòng đọc được lưu trong biến ĐÁP LẠI. Các
được thực thi sau mỗi lần lựa chọn cho đến khi phá vỡ lệnh được thực hiện. Lối thoát
trạng thái của chọn là trạng thái thoát của lệnh cuối cùng được thực thi trong , hoặc không
nếu không có lệnh nào được thực hiện.

trường hợp lời in [[(] Belt Hold [ | Belt Hold ] ...) ;; ] ... nó C
A trường hợp lệnh mở rộng đầu tiên lờivà cố gắng đối sánh nó với từng Belt Hold in
lần lượt, sử dụng các quy tắc đối sánh tương tự như đối với mở rộng tên đường dẫn (xem Tên đường dẫn
Sự bành trướng phía dưới). Các lời được mở rộng bằng cách sử dụng mở rộng dấu ngã, tham số và
mở rộng biến, thay thế số học, thay thế lệnh, quy trình
thay thế và loại bỏ báo giá. Mỗi Belt Hold đã kiểm tra được mở rộng bằng cách sử dụng dấu ngã
mở rộng, mở rộng tham số và biến, thay thế số học, lệnh
thay thế và thay thế quy trình. Nếu tùy chọn vỏ không có trường hợp is
được kích hoạt, trận đấu được thực hiện mà không liên quan đến chữ cái
nhân vật. Khi tìm thấy một kết quả phù hợp, được thực thi. Nếu ;;
toán tử được sử dụng, không có kết quả phù hợp tiếp theo nào được thử sau mẫu đầu tiên
trận đấu. Sử dụng ;& Ở vị trí ;; khiến việc thực thi tiếp tục với
được liên kết với tập hợp các mẫu tiếp theo. Sử dụng ;; & Ở vị trí ;; gây ra
shell để kiểm tra danh sách mẫu tiếp theo trong câu lệnh, nếu có và thực thi bất kỳ
liên kết trên một trận đấu thành công. Trạng thái thoát là XNUMX nếu không có mẫu
diêm. Nếu không, nó là trạng thái thoát của lệnh cuối cùng được thực thi trong .

if ; sau đó ; [ elif ; sau đó ; ] ... [ khác C & ocirc; ng; ] fi
Sản phẩm if được thực thi. Nếu trạng thái thoát của nó bằng XNUMX, sau đó được thực thi.
Nếu không, mỗi elif được thực thi lần lượt và nếu trạng thái thoát của nó bằng XNUMX,
tương ứng sau đó được thực thi và lệnh hoàn thành. Nếu không khác
được thực thi, nếu có. Trạng thái thoát là trạng thái thoát của
lệnh được thực thi hoặc bằng không nếu không có điều kiện nào được kiểm tra là đúng.

trong khi danh sách-1; do danh sách-2; thực hiện
cho đến khi danh sách-1; do danh sách-2; thực hiện
Sản phẩm trong khi lệnh liên tục thực hiện danh sách danh sách-2 miễn là lệnh cuối cùng
trong danh sách danh sách-1 trả về trạng thái thoát bằng XNUMX. Các cho đến khi lệnh giống hệt nhau
đến trong khi lệnh, ngoại trừ việc kiểm tra bị phủ định; danh sách-2 được thực hiện miễn là
là lệnh cuối cùng trong danh sách-1 trả về trạng thái thoát khác XNUMX. Trạng thái thoát của
các trong khicho đến khi lệnh là trạng thái thoát của lệnh cuối cùng được thực thi trong
danh sách-2, hoặc bằng không nếu không có lệnh nào được thực thi.

Đồng xử lý
A đồng xử lý là một lệnh shell đứng trước đồng bào từ dành riêng. Một đồng xử lý là
được thực thi không đồng bộ trong một vỏ con, như thể lệnh đã được kết thúc bằng &
nhà điều hành điều khiển, với một đường ống hai chiều được thiết lập giữa trình bao thực thi và
đồng xử lý.

Định dạng cho một đồng xử lý là:

đồng bào [TÊN] lệnh [← liên kết]

Điều này tạo ra một đồng xử lý có tên TÊN. Nếu TÊN không được cung cấp, tên mặc định là COPROC.
TÊN không được cung cấp nếu lệnh là một đơn giản lệnh (xem ở trên); nếu không, nó là
được hiểu là từ đầu tiên của lệnh đơn giản. Khi đồng xử lý được thực thi,
shell tạo một biến mảng (xem Mảng dưới đây) được đặt tên TÊN trong bối cảnh của
thực thi shell. Đầu ra tiêu chuẩn của lệnh được kết nối thông qua một đường ống dẫn đến một tệp
bộ mô tả trong trình bao đang thực thi và bộ mô tả tệp đó được gán cho TÊN[0]. Các
đầu vào tiêu chuẩn của lệnh được kết nối thông qua một đường ống với một bộ mô tả tệp trong quá trình thực thi
shell và trình mô tả tệp đó được gán cho TÊN[1]. Đường ống này được thành lập trước
bất kỳ chuyển hướng nào được chỉ định bởi lệnh (xem CHỈNH SỬA phía dưới). Các bộ mô tả tệp
có thể được sử dụng làm đối số cho các lệnh shell và chuyển hướng bằng cách sử dụng từ tiêu chuẩn
sự mở rộng. Các bộ mô tả tệp không có sẵn trong các trang con. ID quy trình của
shell được sinh ra để thực thi đồng xử lý có sẵn dưới dạng giá trị của biến TÊN_PID.
Sản phẩm chờ đợi lệnh nội trang có thể được sử dụng để chờ quá trình đồng xử lý kết thúc.

Vì đồng xử lý được tạo dưới dạng lệnh không đồng bộ, đồng bào lệnh luôn luôn
trả lại thành công. Trạng thái trả về của một đồng xử lý là trạng thái thoát của lệnh.

Shell Chức năng Định nghĩa
Một hàm shell là một đối tượng được gọi giống như một lệnh đơn giản và thực thi một hợp chất
lệnh với một tập hợp các tham số vị trí mới. Các hàm Shell được khai báo như sau:

tên () lệnh ghép [chuyển hướng]
chức năng tên [()] lệnh ghép [chuyển hướng]
Điều này xác định một hàm có tên tên. Từ dành riêng chức năng Là tùy chọn. Nếu như
các chức năng từ dành riêng được cung cấp, dấu ngoặc đơn là tùy chọn. Các thân hình of
hàm là lệnh ghép lệnh ghép (xem Hợp chất Lệnh
bên trên). Lệnh đó thường là trong số các lệnh giữa {và}, nhưng có thể là bất kỳ
lệnh được liệt kê dưới Hợp chất Lệnh ở trên. lệnh ghép được thực hiện
bất cứ khi nào tên được chỉ định là tên của một lệnh đơn giản. Khi vào posix chế độ,
tên có thể không phải là tên của một trong các POSIX đặc biệt nội trang. Mọi chuyển hướng
(xem CHỈNH SỬA dưới đây) được chỉ định khi một hàm được xác định được thực hiện khi
chức năng được thực thi. Trạng thái thoát của định nghĩa hàm bằng XNUMX trừ khi
xảy ra lỗi cú pháp hoặc một hàm chỉ đọc có cùng tên đã tồn tại. Khi nào
được thực thi, trạng thái thoát của một hàm là trạng thái thoát của lệnh cuối cùng
thực hiện trong cơ thể. (Nhìn thấy CHỨC NĂNG phía dưới.)

GÓP Ý


Trong một trình bao không tương tác hoặc một trình bao tương tác trong đó tương tác_comments
tùy chọn cho xô đẩy nội trang được bật (xem SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây), một từ
bắt đầu bằng # khiến từ đó và tất cả các ký tự còn lại trên dòng đó bị bỏ qua.
Một trình bao tương tác không có tương tác_comments tùy chọn được bật không cho phép
bình luận. Các tương tác_comments tùy chọn được bật theo mặc định trong trình bao tương tác.

BÁO GIÁ


Trích dẫn được sử dụng để loại bỏ ý nghĩa đặc biệt của các ký tự hoặc từ nhất định đối với shell.
Trích dẫn có thể được sử dụng để vô hiệu hóa xử lý đặc biệt cho các ký tự đặc biệt, để ngăn chặn
các từ dành riêng để không được nhận dạng như vậy và để ngăn việc mở rộng tham số.

Mỗi siêu nhân vật liệt kê trên dưới ĐỊNH NGHĨA có ý nghĩa đặc biệt đối với vỏ
và phải được trích dẫn nếu nó đại diện cho chính nó.

Khi các cơ sở mở rộng lịch sử lệnh đang được sử dụng (xem LỊCH SỬ SỰ BÀNH TRƯỚNG
dưới đây), lịch sử mở rộng nhân vật, thường là !, phải được trích dẫn để ngăn chặn lịch sử
sự bành trướng.

Có ba cơ chế trích dẫn: thoát tính cách, dấu nháy đơn và dấu ngoặc kép
trích dẫn.

Dấu gạch chéo ngược không được trích dẫn (\) Là thoát tính cách. Nó bảo toàn giá trị theo nghĩa đen của
ký tự tiếp theo theo sau, ngoại trừ . Nếu một \đôi
xuất hiện và dấu gạch chéo ngược không được trích dẫn chính nó, \được coi như một dòng
sự tiếp tục (nghĩa là nó bị loại bỏ khỏi luồng đầu vào và bị bỏ qua một cách hiệu quả).

Việc đặt các ký tự trong dấu ngoặc kép duy nhất giữ nguyên giá trị chữ của mỗi ký tự bên trong
những lời trích dẫn. Một dấu ngoặc kép có thể không xuất hiện giữa các dấu ngoặc kép, ngay cả khi đứng trước dấu ngoặc kép
dấu gạch chéo ngược.

Đặt các ký tự trong dấu ngoặc kép bảo toàn giá trị theo nghĩa đen của tất cả các ký tự bên trong
các dấu ngoặc kép, ngoại trừ $, `, \và khi mở rộng lịch sử được bật, !. Các
nhân vật $` giữ lại ý nghĩa đặc biệt của chúng trong dấu ngoặc kép. Dấu gạch chéo ngược
chỉ giữ lại ý nghĩa đặc biệt của nó khi được theo sau bởi một trong các ký tự sau: $, `,
", \, hoặc là . Một dấu ngoặc kép có thể được trích dẫn trong dấu ngoặc kép bằng cách đặt trước nó
với một dấu gạch chéo ngược. Nếu được bật, mở rộng lịch sử sẽ được thực hiện trừ khi ! xuất hiện
trong dấu ngoặc kép được thoát bằng dấu gạch chéo ngược. Dấu gạch chéo ngược đứng trước ! không phải là
loại bỏ.

Các thông số đặc biệt *@ có ý nghĩa đặc biệt khi ở trong dấu ngoặc kép (xem THÔNG SỐ
dưới đây).

Từ của biểu mẫu $'chuỗi'được đối xử đặc biệt. Từ mở rộng thành chuỗi, với
các ký tự thoát ra sau dấu gạch chéo ngược được thay thế theo tiêu chuẩn ANSI C. Gạch chéo ngược
trình tự thoát, nếu có, được giải mã như sau:
\a cảnh báo (chuông)
\b BackSpace
\e
\E một nhân vật trốn thoát
\f thức ăn dạng
\n dòng mới
\r vận chuyển trở lại
\t Tab ngang
\v tab dọc
\\ dấu gạch chéo ngược
\' trích dẫn duy nhất
\" dấu ngoặc kép
\nnn ký tự tám bit có giá trị là giá trị bát phân nnn (một đến ba
chữ số)
\xHH ký tự tám bit có giá trị là giá trị thập lục phân HH (một hoặc hai
chữ số hex)
\uHhhh ký tự Unicode (ISO / IEC 10646) có giá trị là giá trị thập lục phân
Hhhh (một đến bốn chữ số hex)
\UHHHHHHHHH
ký tự Unicode (ISO / IEC 10646) có giá trị là giá trị thập lục phân
HHHHHHHHH (một đến tám chữ số hex)
\cx một sự điều khiển-x tính cách

Kết quả mở rộng được trích dẫn một lần, như thể ký hiệu đô la không có mặt.

Một chuỗi được trích dẫn kép đứng trước một ký hiệu đô la ($"chuỗi") sẽ làm cho chuỗi là
được dịch theo ngôn ngữ hiện tại. Nếu ngôn ngữ hiện tại là C or POSIX, Các
ký hiệu đô la bị bỏ qua. Nếu chuỗi được dịch và thay thế, thì chuỗi thay thế là
được trích dẫn kép.

THÔNG SỐ


A tham số là một thực thể lưu trữ các giá trị. Nó có thể là một tên, một số hoặc một trong số
các ký tự đặc biệt được liệt kê bên dưới Reduct ® Thông số. Một biến là một tham số
được biểu thị bằng một tên. Một biến có một giá trị và không hoặc nhiều hơn thuộc tính. Các thuộc tính là
được chỉ định bằng cách sử dụng khai lệnh nội trang (xem khai dưới đây trong SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG).

Một tham số được đặt nếu nó đã được gán một giá trị. Chuỗi null là một giá trị hợp lệ.
Sau khi một biến được đặt, nó có thể không được đặt chỉ bằng cách sử dụng không đặt lệnh nội trang (xem SHELL
ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây).

A biến có thể được chỉ định bởi một tuyên bố của biểu mẫu

tên=[giá trị]

If giá trị không được đưa ra, biến được gán là chuỗi null. Tất cả các giá trị trải qua dấu ngã
mở rộng, mở rộng tham số và biến, thay thế lệnh, mở rộng số học,
và loại bỏ báo giá (xem SỰ BÀNH TRƯỚNG phía dưới). Nếu biến có số nguyên tập thuộc tính,
sau đó giá trị được đánh giá là một biểu thức số học ngay cả khi mở rộng $ ((...)) không phải là
đã sử dụng (xem toán học Sự bành trướng phía dưới). Việc tách từ không được thực hiện, với
ngoài trừ "$ @" như được giải thích bên dưới Reduct ® Thông số. Mở rộng tên đường dẫn không phải là
đã thực hiện. Các câu lệnh gán cũng có thể xuất hiện dưới dạng đối số cho bí danh, khai,
bộ sắp chữ, xuất khẩu, chỉ đọcđịa phương lệnh nội trang. Khi vào posix chế độ, những nội trang này
có thể xuất hiện trong một lệnh sau một hoặc nhiều trường hợp của lệnh nội trang và giữ lại
các thuộc tính câu lệnh gán này.

Trong ngữ cảnh mà một câu lệnh gán đang gán một giá trị cho một biến shell hoặc
chỉ số mảng, toán tử + = có thể được sử dụng để thêm vào hoặc thêm vào trước đó của biến
giá trị. Khi + = được áp dụng cho một biến mà số nguyên thuộc tính đã được thiết lập,
giá trị được đánh giá như một biểu thức số học và được thêm vào giá trị hiện tại của biến,
mà cũng được đánh giá. Khi + = được áp dụng cho một biến mảng bằng cách sử dụng kết hợp
nhiệm vụ (xem Mảng bên dưới), giá trị của biến không được đặt (như khi sử dụng =),
và các giá trị mới được nối vào mảng bắt đầu từ một giá trị lớn hơn giá trị tối đa của mảng
chỉ mục (đối với các mảng được lập chỉ mục) hoặc được thêm vào dưới dạng các cặp khóa-giá trị bổ sung trong một mảng kết hợp.
Khi được áp dụng cho một biến có giá trị chuỗi, giá trị được mở rộng và thêm vào biến
giá trị.

Một biến có thể được gán cho tên giới thiệu thuộc tính sử dụng -n tùy chọn cho khai or
địa phương lệnh nội trang (xem mô tả của khaiđịa phương dưới đây) để tạo một
tên giới thiệu, hoặc tham chiếu đến một biến khác. Điều này cho phép các biến được thao tác
gián tiếp. Bất cứ khi nào biến nameref được tham chiếu hoặc được gán, hoạt động sẽ
thực sự được thực hiện trên biến được chỉ định bởi giá trị của biến nameref. Một tênref
thường được sử dụng trong các hàm shell để tham chiếu đến một biến có tên được chuyển dưới dạng
đối số của hàm. Ví dụ: nếu một tên biến được chuyển cho một hàm shell
là đối số đầu tiên của nó, đang chạy
khai báo -n ref = $ 1
bên trong hàm tạo một biến nameref ref giá trị của nó là tên biến được truyền vào
như đối số đầu tiên. Tài liệu tham khảo và giao cho ref được coi là tài liệu tham khảo và
các phép gán cho biến có tên được chuyển là $1. Nếu biến điều khiển trong một cho
vòng lặp có thuộc tính nameref, danh sách các từ có thể là danh sách các biến shell và
Tham chiếu tên lần lượt sẽ được thiết lập cho từng từ trong danh sách, khi vòng lặp
Thực thi. Các biến mảng không thể được cung cấp -n thuộc tính. Tuy nhiên, các biến nameref
có thể tham chiếu đến các biến mảng và các biến mảng có chỉ số con. Namerefs có thể không được đặt
bằng cách sử dụng -n tùy chọn cho không đặt được xây dựng trong. Ngược lại, nếu không đặt được thực thi với tên
của một biến nameref như một đối số, biến được tham chiếu bởi biến nameref sẽ
không được đặt.

Vị trí Thông số
A vị trí tham số là một tham số được biểu thị bằng một hoặc nhiều chữ số, không phải là một tham số
chữ số 0. Các tham số vị trí được gán từ các đối số của trình bao khi nó là
được gọi và có thể được chỉ định lại bằng cách sử dụng định lệnh nội trang. Các thông số vị trí có thể
không được gán cho với các câu lệnh gán. Các tham số vị trí là tạm thời
được thay thế khi một hàm shell được thực thi (xem CHỨC NĂNG dưới đây).

Khi một tham số vị trí bao gồm nhiều hơn một chữ số được mở rộng, nó phải là
được bao bọc trong dấu ngoặc nhọn (xem SỰ BÀNH TRƯỚNG dưới đây).

Reduct ® Thông số
Vỏ xử lý một số thông số đặc biệt. Các tham số này chỉ có thể được tham chiếu;
không được phép giao việc cho họ.
* Mở rộng đến các tham số vị trí, bắt đầu từ một. Khi mở rộng không
trong dấu ngoặc kép, mỗi tham số vị trí mở rộng thành một từ riêng biệt. Trong
ngữ cảnh nơi nó được thực hiện, những từ đó có thể được tách từ nhiều hơn
và mở rộng tên đường dẫn. Khi phần mở rộng xảy ra trong dấu ngoặc kép, nó sẽ mở rộng
thành một từ duy nhất với giá trị của mỗi tham số được phân tách bằng ký tự đầu tiên
của IFS biến đặc biệt. Đó là, "$*" tương đương với "$1c$2chữu ích. Cảm ơn !", ở đâu c
là ký tự đầu tiên của giá trị IFS Biến đổi. Nếu như IFS chưa được đặt,
các tham số được phân tách bằng dấu cách. Nếu như IFS là null, các tham số được kết hợp
không có dải phân cách can thiệp.
@ Mở rộng đến các tham số vị trí, bắt đầu từ một. Khi mở rộng xảy ra
trong dấu ngoặc kép, mỗi tham số mở rộng thành một từ riêng biệt. Đó là, "$@" Là
tương đương với "$1""$2"... Nếu phần mở rộng được trích dẫn kép xảy ra trong một từ,
phần mở rộng của tham số đầu tiên được kết hợp với phần đầu của
từ gốc và phần mở rộng của tham số cuối cùng được kết hợp với phần cuối cùng
của từ gốc. Khi không có tham số vị trí, "$@"và $@ mở rộng
không có gì (tức là, chúng bị loại bỏ).
# Mở rộng đến số lượng tham số vị trí ở dạng thập phân.
? Mở rộng đến trạng thái thoát của đường dẫn nền trước được thực thi gần đây nhất.
- Mở rộng các cờ tùy chọn hiện tại như được chỉ định khi gọi, bằng cách định
lệnh nội trang hoặc những lệnh được đặt bởi chính trình bao (chẳng hạn như -i Tùy chọn).
$ Mở rộng đến ID quy trình của trình bao. Trong một vỏ con (), nó mở rộng đến
ID tiến trình của shell hiện tại, không phải là subshell.
! Mở rộng đến ID quy trình của công việc được đặt gần đây nhất vào nền,
cho dù được thực thi dưới dạng lệnh không đồng bộ hay sử dụng bg nội trang (xem VIỆC LÀM
KIỂM SOÁT dưới đây).
0 Mở rộng đến tên của tập lệnh shell hoặc shell. Điều này được đặt tại shell
khởi tạo. Nếu như bash được gọi bằng một tệp lệnh, $0 được đặt thành tên
của tệp đó. Nếu như bash được bắt đầu với -c tùy chọn, sau đó $0 được đặt thành đầu tiên
đối số sau chuỗi được thực thi, nếu có. Nếu không, nó được thiết lập
đến tên tệp được sử dụng để gọi bash, như được đưa ra bởi đối số không.
_ Khi khởi động shell, hãy đặt thành tên đường dẫn tuyệt đối được sử dụng để gọi shell hoặc shell
tập lệnh đang được thực thi khi được truyền trong môi trường hoặc danh sách đối số. Sau đó,
mở rộng đến đối số cuối cùng của lệnh trước đó, sau khi mở rộng. Cũng được đặt thành
tên đường dẫn đầy đủ được sử dụng để gọi mỗi lệnh được thực thi và được đặt trong
môi trường được xuất sang lệnh đó. Khi kiểm tra thư, tham số này giữ
tên của tệp thư hiện đang được kiểm tra.

Shell Biến
Các biến sau được đặt bởi shell:

TIỀN Mở rộng thành tên tệp đầy đủ được sử dụng để gọi phiên bản này của bash.
BASHOP
Danh sách các tùy chọn trình bao đã bật được phân tách bằng dấu hai chấm. Mỗi từ trong danh sách là một
lập luận cho -s tùy chọn cho xô đẩy lệnh nội trang (xem SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG
phía dưới). Các tùy chọn xuất hiện trong BASHOP những người được báo cáo là on by xô đẩy. Nếu
biến này nằm trong môi trường khi bash khởi động, mỗi tùy chọn shell trong
danh sách sẽ được bật trước khi đọc bất kỳ tệp khởi động nào. Biến này ở chế độ chỉ đọc.
BASHPID
Mở rộng đến ID quy trình của hiện tại bash tiến trình. Điều này khác với $$ Dưới
một số trường hợp nhất định, chẳng hạn như các phiếu phụ không yêu cầu bash được tái
khởi tạo.
BASH_ALIASES
Một biến mảng kết hợp có các thành viên tương ứng với danh sách nội bộ của
bí danh được duy trì bởi bí danh được xây dựng trong. Các phần tử được thêm vào mảng này xuất hiện trong
danh sách bí danh; bỏ thiết lập các phần tử mảng khiến bí danh bị xóa khỏi bí danh
danh sách.
BASH_ARGC
Một biến mảng có giá trị là số tham số trong mỗi khung của
hiện hành bash ngăn xếp cuộc gọi thực thi. Số lượng các tham số hiện tại
chương trình con (hàm shell hoặc tập lệnh được thực thi với . or nguồn) đứng đầu
ngăn xếp. Khi một chương trình con được thực thi, số lượng tham số được truyền vào là
đẩy lên BASH_ARGC. Bộ vỏ BASH_ARGC chỉ khi gỡ lỗi mở rộng
chế độ (xem mô tả của người tống tiền tùy chọn cho xô đẩy nội trang bên dưới)
BASH_ARGV
Một biến mảng chứa tất cả các tham số hiện tại bash thực hiện
cuộc gọi ngăn xếp. Tham số cuối cùng của lệnh gọi chương trình con cuối cùng nằm ở đầu
cây rơm; tham số đầu tiên của cuộc gọi ban đầu nằm ở dưới cùng. Khi một chương trình con
được thực thi, các tham số được cung cấp được đẩy lên BASH_ARGV. Bộ vỏ
BASH_ARGV chỉ khi ở chế độ gỡ lỗi mở rộng (xem mô tả của người tống tiền
tùy chọn cho xô đẩy nội trang bên dưới)
BASH_CMDS
Một biến mảng kết hợp có các thành viên tương ứng với bảng băm bên trong
các lệnh được duy trì bởi băm được xây dựng trong. Các phần tử được thêm vào mảng này xuất hiện
trong bảng băm; bỏ thiết lập các phần tử mảng khiến các lệnh bị xóa khỏi
bảng băm.
BASH_COMMAND
Lệnh hiện đang được thực hiện hoặc sắp được thực thi, trừ khi trình bao
thực hiện một lệnh do kết quả của một cái bẫy, trong trường hợp đó nó là lệnh
thực hiện tại thời điểm của cái bẫy.
BASH_EXECUTION_STRING
Đối số lệnh cho -c tùy chọn gọi.
BASH_LINEKHÔNG
Một biến mảng có các thành viên là số dòng trong các tệp nguồn trong đó mỗi
thành viên tương ứng của TÊN CHỨC NĂNG đã được gọi. $ {BASH_LINENO [$i]} là dòng
số trong tệp nguồn ($ {BASH_SOURCE [$ i + 1]}) Ở đâu $ {FUNCNAME [$i]} được gọi là
(Hoặc $ {BASH_LINENO [$ i-1]} nếu được tham chiếu trong một hàm shell khác). Sử dụng DÒNG KHÔNG
để lấy số dòng hiện tại.
BASH_REMATCH
Một biến mảng có các thành viên được gán bởi =~ toán tử nhị phân cho [[
lệnh điều kiện. Phần tử có chỉ số 0 là phần của chuỗi
khớp với toàn bộ biểu thức chính quy. Phần tử có chỉ mục n là một phần của
chuỗi khớp với nbiểu thức con có dấu ngoặc đơn. Biến này được đọc-
chỉ
BASH_SOURCE
Một biến mảng có các thành viên là tên tệp nguồn trong đó
tên hàm shell trong TÊN CHỨC NĂNG biến mảng được xác định. Cái vỏ
chức năng $ {FUNCNAME [$i]} được định nghĩa trong tệp $ {BASH_SOURCE [$i]} và được gọi từ
$ {BASH_SOURCE [$ i + 1]}.
BASH_SUBSHELL
Tăng lên một trong mỗi vỏ con hoặc môi trường vỏ con khi vỏ
bắt đầu thực thi trong môi trường đó. Giá trị ban đầu là 0.
BASH_VERSINFO
Một biến mảng chỉ đọc có các thành viên giữ thông tin phiên bản cho trường hợp này
of bash. Các giá trị được gán cho các thành viên mảng như sau:
BASH_VERSINFO [0] Số phiên bản chính ( phát hành).
BASH_VERSINFO [1] Số phiên bản nhỏ ( phiên bản).
BASH_VERSINFO [2] Mức độ vá lỗi.
BASH_VERSINFO [3] Phiên bản xây dựng.
BASH_VERSINFO [4] Trạng thái phát hành (ví dụ: beta1).
BASH_VERSINFO [5] Giá trị của LOẠI MÁY.
BASH_VERSION
Mở rộng thành một chuỗi mô tả phiên bản của phiên bản này bash.
COMP_CWORD
Một chỉ mục thành $ {COMP_WORDS} của từ chứa vị trí con trỏ hiện tại.
Biến này chỉ có sẵn trong các hàm shell được gọi bởi lập trình
cơ sở vật chất hoàn thiện (xem Programmable Hoàn thành dưới đây).
COMP_KEY
Khóa (hoặc khóa cuối cùng của chuỗi khóa) được sử dụng để gọi hoàn thành hiện tại
chức năng.
COMP_LINE
Dòng lệnh hiện tại. Biến này chỉ có sẵn trong các hàm shell và
các lệnh bên ngoài được gọi bởi các phương tiện hoàn thành có thể lập trình (xem
Programmable Hoàn thành dưới đây).
COMP_POINT
Chỉ số của vị trí con trỏ hiện tại so với vị trí bắt đầu của dòng điện
chỉ huy. Nếu vị trí con trỏ hiện tại ở cuối lệnh hiện tại,
giá trị của biến này bằng $ {# COMP_LINE}. Biến này chỉ có sẵn
trong các hàm shell và các lệnh bên ngoài được gọi bởi quá trình hoàn thành có thể lập trình
cơ sở vật chất (xem Programmable Hoàn thành dưới đây).
COMP_TYPE
Đặt thành giá trị số nguyên tương ứng với kiểu hoàn thành đã cố gắng
khiến một hàm hoàn thành được gọi: TAB, để hoàn thành bình thường, ?, Cho
danh sách hoàn thành sau các tab liên tiếp, !, để liệt kê các lựa chọn thay thế trên một phần
Hoàn thành từ, @, để liệt kê các phần hoàn thành nếu từ không được sửa đổi, hoặc %, Cho
hoàn thành menu. Biến này chỉ có sẵn trong các hàm shell và bên ngoài
các lệnh được gọi bởi các phương tiện hoàn thành có thể lập trình (xem Programmable
Hoàn thành dưới đây).
COMP_WORDBREAKS
Tập hợp các ký tự mà đường dẫn thư viện coi như dấu phân tách từ khi
thực hiện hoàn thành từ. Nếu như COMP_WORDBREAKS không được đặt, nó mất đi sự đặc biệt của nó
các thuộc tính, ngay cả khi nó được đặt lại sau đó.
COMP_WORDS
Một biến mảng (xem Mảng dưới đây) bao gồm các từ riêng lẻ trong
dòng lệnh hiện tại. Dòng được chia thành các từ như đường dẫn sẽ chia nó ra,
sử dụng COMP_WORDBREAKS như đã mô tả ở trên. Biến này chỉ có sẵn trong shell
các chức năng được gọi bởi các phương tiện hoàn thành có thể lập trình (xem Programmable
Hoàn thành dưới đây).
COPROC Một biến mảng (xem Mảng bên dưới) được tạo để giữ các bộ mô tả tệp cho
đầu ra từ và đầu vào cho một bộ đồng xử lý không tên (xem Đồng xử lý ở trên).
QUAY LẠI
Một biến mảng (xem Mảng dưới đây) chứa nội dung hiện tại của
ngăn xếp thư mục. Các thư mục xuất hiện trong ngăn xếp theo thứ tự chúng được hiển thị
bởi dirs được xây dựng trong. Việc gán cho các thành viên của biến mảng này có thể được sử dụng để
sửa đổi các thư mục đã có trong ngăn xếp, nhưng pushdpopd nội trang phải được
dùng để thêm bớt các thư mục. Việc gán cho biến này sẽ không thay đổi
thư mục hiện tại. Nếu như QUAY LẠI không được đặt, nó mất các thuộc tính đặc biệt, thậm chí
nếu sau đó nó được đặt lại.
EUID Mở rộng đến ID người dùng hiệu quả của người dùng hiện tại, được khởi tạo khi khởi động trình bao.
Biến này chỉ đọc.
TÊN CHỨC NĂNG
Một biến mảng có chứa tên của tất cả các hàm shell hiện có trong
ngăn xếp cuộc gọi thực thi. Phần tử có chỉ mục 0 là tên của bất kỳ hiện tại-
thực thi chức năng shell. Phần tử ở dưới cùng (phần tử có chỉ số cao nhất)
là "chính". Biến này chỉ tồn tại khi một hàm shell đang thực thi.
Nhiệm vụ cho TÊN CHỨC NĂNG không có hiệu lực và trả về trạng thái lỗi. Nếu như TÊN CHỨC NĂNG is
không được đặt, nó sẽ mất các thuộc tính đặc biệt của nó, ngay cả khi nó được đặt lại sau đó.

Biến này có thể được sử dụng với BASH_LINEKHÔNGBASH_SOURCE. Mỗi phần tử của
TÊN CHỨC NĂNG có các phần tử tương ứng trong BASH_LINEKHÔNGBASH_SOURCE để mô tả
cuộc gọi ngăn xếp. Ví dụ, $ {FUNCNAME [$i]} đã được gọi từ tệp
$ {BASH_SOURCE [$ i + 1]} ở số dòng $ {BASH_LINENO [$i]}. Các người gọi được xây dựng trong
hiển thị ngăn xếp cuộc gọi hiện tại bằng cách sử dụng thông tin này.
CÁC NHÓM Một biến mảng chứa danh sách các nhóm mà người dùng hiện tại là
thành viên. Nhiệm vụ cho CÁC NHÓM không có hiệu lực và trả về trạng thái lỗi. Nếu như
CÁC NHÓM không được đặt, nó sẽ mất các thuộc tính đặc biệt, ngay cả khi nó được đặt lại sau đó.
HISTCMD
Số lịch sử hoặc chỉ mục trong danh sách lịch sử của lệnh hiện tại. Nếu như
HISTCMD không được đặt, nó sẽ mất các thuộc tính đặc biệt, ngay cả khi sau đó
cài lại.
TÊN MÁY CHỦ
Tự động đặt thành tên của máy chủ lưu trữ hiện tại.
LOẠI CHỦ
Tự động đặt thành một chuỗi mô tả duy nhất loại máy trên đó
bash đang thực thi. Giá trị mặc định phụ thuộc vào hệ thống.
DÒNG KHÔNG Mỗi khi tham số này được tham chiếu, shell sẽ thay thế một số thập phân
đại diện cho số dòng tuần tự hiện tại (bắt đầu bằng 1) trong một tập lệnh
hoặc chức năng. Khi không có trong tập lệnh hoặc hàm, giá trị được thay thế không phải là
đảm bảo có ý nghĩa. Nếu như DÒNG KHÔNG không được đặt, nó mất các thuộc tính đặc biệt,
ngay cả khi nó được đặt lại sau đó.
LOẠI MÁY
Tự động đặt thành một chuỗi mô tả đầy đủ loại hệ thống mà trên đó bash is
đang thực thi, trong GNU tiêu chuẩn cpu-công ty-hệ thống định dạng. Mặc định là hệ thống-
phụ thuộc.
BẢN ĐỒ
Một biến mảng (xem Mảng dưới đây) được tạo ra để giữ văn bản được đọc bởi tệp bản đồ
nội trang khi không có tên biến nào được cung cấp.
CAO TUỔI Thư mục làm việc trước đó được đặt bởi cd chỉ huy.
TỐI ƯU Giá trị của đối số tùy chọn cuối cùng được xử lý bởi getopt lệnh nội trang (xem
SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây).
TÙY CHỌN Chỉ mục của đối số tiếp theo được xử lý bởi getopt lệnh nội trang (xem
SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây).
LOẠI HÌNH Tự động đặt thành một chuỗi mô tả hệ điều hành trên đó bash is
đang thực thi. Giá trị mặc định phụ thuộc vào hệ thống.
PIPESTATUS
Một biến mảng (xem Mảng bên dưới) chứa danh sách các giá trị trạng thái thoát khỏi
các quy trình trong đường dẫn nền trước được thực thi gần đây nhất (có thể chứa
chỉ một lệnh duy nhất).
PPID ID tiến trình của cha của shell. Biến này chỉ đọc.
PWD Thư mục làm việc hiện tại được đặt bởi cd chỉ huy.
RANDOM Mỗi khi tham số này được tham chiếu, một số nguyên ngẫu nhiên từ 0 đến 32767 là
được tạo ra. Dãy số ngẫu nhiên có thể được khởi tạo bằng cách gán một giá trị
đến RANDOM. Nếu RANDOM không được đặt, nó sẽ mất các thuộc tính đặc biệt, ngay cả khi
sau đó đặt lại.
READLINE_LINE
Nội dung của đường dẫn bộ đệm dòng, để sử dụng với "bind -x" (xem SHELL ĐƯỢC XÂY DỰNG TRONG
HÀNG dưới đây).
READLINE_POINT
Vị trí của điểm chèn trong đường dẫn bộ đệm dòng, để sử dụng với "bind
-x "(xem SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây).
ĐÁP LẠI Đặt thành dòng đầu vào được đọc bởi đọc lệnh nội trang khi không có đối số
cung cấp.
GIÂY
Mỗi khi tham số này được tham chiếu, số giây kể từ khi trình bao
lời gọi được trả về. Nếu một giá trị được gán cho GIÂY, giá trị được trả lại khi
các tham chiếu tiếp theo là số giây kể từ khi gán cộng với giá trị
giao. Nếu như GIÂY không được đặt, nó sẽ mất các thuộc tính đặc biệt, ngay cả khi
sau đó đặt lại.
VỎ
Danh sách các tùy chọn trình bao đã bật được phân tách bằng dấu hai chấm. Mỗi từ trong danh sách là một
lập luận cho -o tùy chọn cho định lệnh nội trang (xem SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG
phía dưới). Các tùy chọn xuất hiện trong VỎ những người được báo cáo là on by định -o. Nếu
biến này nằm trong môi trường khi bash khởi động, mỗi tùy chọn shell trong
danh sách sẽ được bật trước khi đọc bất kỳ tệp khởi động nào. Biến này ở chế độ chỉ đọc.
SHLVL Tăng lên một lần mỗi khi một phiên bản của bash được bắt đầu.
UID Mở rộng đến ID người dùng của người dùng hiện tại, được khởi tạo khi khởi động trình bao. Cái này
biến chỉ đọc.

Các biến sau đây được sử dụng bởi shell. Trong vài trường hợp, bash chỉ định một mặc định
giá trị cho một biến; những trường hợp này được ghi nhận dưới đây.

BASH_COMPAT
Giá trị được sử dụng để đặt mức độ tương thích của trình bao. Xem mô tả của
các xô đẩy nội trang bên dưới SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG cho một mô tả về
các mức độ tương thích khác nhau và tác dụng của chúng. Giá trị có thể là một số thập phân
(ví dụ: 4.2) hoặc một số nguyên (ví dụ, 42) tương ứng với khả năng tương thích mong muốn
cấp độ. Nếu BASH_COMPAT không được đặt hoặc được đặt thành chuỗi trống, mức độ tương thích
được đặt thành mặc định cho phiên bản hiện tại. Nếu như BASH_COMPAT được đặt thành một giá trị
đó không phải là một trong những mức tương thích hợp lệ, shell in lỗi
và đặt mức tương thích thành mặc định cho phiên bản hiện tại.
Các mức tương thích hợp lệ tương ứng với các tùy chọn tương thích được chấp nhận bởi
các xô đẩy nội trang được mô tả bên dưới (ví dụ: tương thích42 có nghĩa là 4.2 và 42 là
giá trị hợp lệ). Phiên bản hiện tại cũng là một giá trị hợp lệ.
BASH_ENV
Nếu tham số này được đặt khi bash đang thực thi một tập lệnh shell, giá trị của nó là
được hiểu là một tên tệp chứa các lệnh để khởi tạo trình bao, như trong
~ / .bashrc. Giá trị của BASH_ENV được mở rộng tham số, lệnh
thay thế và mở rộng số học trước khi được hiểu là một tên tệp.
PATH không được sử dụng để tìm kiếm tên tệp kết quả.
BASH_XTRACEFD
Nếu được đặt thành số nguyên tương ứng với bộ mô tả tệp hợp lệ, bash sẽ viết
đầu ra theo dõi được tạo ra khi định -x được kích hoạt cho trình mô tả tệp đó. Tập tin
bộ mô tả được đóng khi BASH_XTRACEFD chưa được đặt hoặc được gán một giá trị mới.
Bỏ thiết lập BASH_XTRACEFD hoặc gán cho nó chuỗi trống khiến đầu ra theo dõi
được gửi đến lỗi tiêu chuẩn. Lưu ý rằng cài đặt BASH_XTRACEFD đến 2 (tiêu chuẩn
bộ mô tả tệp lỗi) và sau đó bỏ thiết lập nó sẽ dẫn đến lỗi tiêu chuẩn
đang bị đóng cửa.
CDPATH Đường dẫn tìm kiếm cho cd chỉ huy. Đây là danh sách các thư mục được phân tách bằng dấu hai chấm
trong đó shell tìm kiếm các thư mục đích được chỉ định bởi cd chỉ huy.
Giá trị mẫu là ".: ~:/ usr".
TRẺ_MAX
Đặt số lượng giá trị trạng thái con đã thoát cho shell để ghi nhớ. Bash sẽ
không cho phép giảm giá trị này xuống dưới mức tối thiểu do POSIX bắt buộc và có
giá trị tối đa (hiện tại là 8192) mà giá trị này không được vượt quá. Giá trị tối thiểu là
phụ thuộc vào hệ thống.
CỘT
Được sử dụng bởi chọn lệnh ghép để xác định chiều rộng đầu cuối khi in
danh sách lựa chọn. Tự động đặt nếu kiểm tra kích thước tùy chọn được bật hoặc trong một
vỏ tương tác khi nhận được một SIGWINCH.
HOÀN TOÀN
Một biến mảng mà từ đó bash đọc các lần hoàn thành có thể được tạo bởi một
hàm shell được gọi bởi cơ sở hoàn thành có thể lập trình (xem Programmable
Hoàn thành phía dưới). Mỗi phần tử mảng chứa một lần hoàn thành có thể xảy ra.
EMACS If bash tìm biến này trong môi trường khi trình bao bắt đầu bằng giá trị
"t", nó giả định rằng trình bao đang chạy trong bộ đệm trình bao Emacs và vô hiệu hóa
chỉnh sửa dòng.
ENV Tương tự như BASH_ENV; được sử dụng khi trình bao được gọi trong chế độ POSIX.
FCEDIT Trình chỉnh sửa mặc định cho fc lệnh nội trang.
ĐĂNG KÝ
Danh sách các hậu tố được phân tách bằng dấu hai chấm cần bỏ qua khi thực hiện hoàn thành tên tệp
(xem ĐỌC TIẾP phía dưới). Tên tệp có hậu tố khớp với một trong các mục nhập trong
ĐĂNG KÝ bị loại trừ khỏi danh sách các tên tệp phù hợp. Giá trị mẫu là ".o: ~"
(Cần phải sử dụng dấu ngoặc kép khi gán giá trị cho biến này có chứa dấu ngã).
VUI VẺ NHẤT
Nếu được đặt thành giá trị số lớn hơn 0, hãy xác định mức lồng hàm tối đa.
Các lệnh gọi hàm vượt quá mức lồng nhau này sẽ gây ra lệnh hiện tại
để hủy bỏ.
TOÀN CẦU
Danh sách các mẫu được phân tách bằng dấu hai chấm xác định tập hợp các tên tệp sẽ bị bỏ qua
mở rộng tên đường dẫn. Nếu tên tệp được khớp với một mẫu mở rộng tên đường dẫn cũng
khớp với một trong các mẫu trong TOÀN CẦU, nó bị xóa khỏi danh sách các trận đấu.
KIỂM SOÁT LỊCH SỬ
Danh sách các giá trị được phân tách bằng dấu hai chấm kiểm soát cách các lệnh được lưu trên lịch sử
danh sách. Nếu danh sách các giá trị bao gồm bỏ qua không gian, các dòng bắt đầu bằng không gian
ký tự không được lưu trong danh sách lịch sử. Một giá trị của bỏ qua nguyên nhân dòng
khớp với mục lịch sử trước đó để không được lưu. Một giá trị của phớt lờ is
viết tắt cho bỏ qua không gianbỏ qua. Một giá trị của tẩy xóa nguyên nhân trước
dòng khớp với dòng hiện tại sẽ được xóa khỏi danh sách lịch sử trước đó
dòng đã được lưu. Bất kỳ giá trị nào không có trong danh sách trên đều bị bỏ qua. Nếu như KIỂM SOÁT LỊCH SỬ is
không được đặt hoặc không bao gồm một giá trị hợp lệ, tất cả các dòng được đọc bởi trình phân tích cú pháp shell là
được lưu trong danh sách lịch sử, tùy thuộc vào giá trị của LỊCH SỬ. Thứ hai và
các dòng tiếp theo của lệnh ghép nhiều dòng không được kiểm tra và được thêm vào
lịch sử bất kể giá trị của KIỂM SOÁT LỊCH SỬ.
LỊCH SỬ
Tên của tệp mà lịch sử lệnh được lưu (xem LỊCH SỬ phía dưới). Các
giá trị mặc định là ~ / .bash_history. Nếu không được đặt, lịch sử lệnh sẽ không được lưu khi
một lớp vỏ thoát ra.
KÍCH THƯỚC LỊCH SỬ
Số dòng tối đa có trong tệp lịch sử. Khi biến này là
được chỉ định một giá trị, tệp lịch sử bị cắt bớt, nếu cần, để không chứa nữa
hơn số dòng đó bằng cách xóa các mục cũ nhất. Tệp lịch sử cũng là
bị cắt ngắn thành kích thước này sau khi viết nó khi thoát ra khỏi trình bao. Nếu giá trị là 0,
tệp lịch sử bị cắt ngắn thành kích thước bằng không. Giá trị không phải số và giá trị số ít hơn
hơn XNUMX ngăn cản việc cắt ngắn. Trình bao đặt giá trị mặc định thành giá trị của
KÍCH THƯỚC LỊCH SỬ sau khi đọc bất kỳ tệp khởi động nào.
LỊCH SỬ
Danh sách các mẫu được phân tách bằng dấu hai chấm được sử dụng để quyết định dòng lệnh nào nên
được lưu trên danh sách lịch sử. Mỗi mẫu được neo ở đầu dòng
và phải khớp với dòng hoàn chỉnh (không có ẩn '*'được thêm vào). Mỗi mẫu là
được kiểm tra so với dòng sau khi kiểm tra được chỉ định bởi KIỂM SOÁT LỊCH SỬ được áp dụng. Trong
ngoài các ký tự khớp với mẫu vỏ bình thường, `&'khớp với cái trước
dòng lịch sử. `&'có thể được thoát bằng cách sử dụng dấu gạch chéo ngược; dấu gạch chéo ngược được loại bỏ
trước khi thử một trận đấu. Dòng thứ hai và các dòng tiếp theo của nhiều dòng
lệnh ghép không được kiểm tra và được thêm vào lịch sử bất kể
giá trị của LỊCH SỬ.
KÍCH THƯỚC LỊCH SỬ
Số lượng lệnh cần nhớ trong lịch sử lệnh (xem LỊCH SỬ phía dưới). Nếu như
giá trị là 0, các lệnh không được lưu trong danh sách lịch sử. Giá trị số ít hơn
hơn XNUMX dẫn đến mọi lệnh được lưu trên danh sách lịch sử (không có
giới hạn). Trình bao đặt giá trị mặc định thành 500 sau khi đọc bất kỳ tệp khởi động nào.
ĐỊNH DẠNG THỜI GIAN LỊCH SỰ
Nếu biến này được đặt chứ không phải giá trị rỗng, giá trị của nó được sử dụng làm chuỗi định dạng cho
thời gian căng thẳng(3) để in dấu thời gian được liên kết với mỗi mục nhập lịch sử được hiển thị bởi
các lịch sử được xây dựng trong. Nếu biến này được đặt, các dấu thời gian được ghi vào
tệp lịch sử để chúng có thể được lưu giữ trong các phiên trình bao. Điều này sử dụng lịch sử
ký tự bình luận để phân biệt dấu thời gian với các dòng lịch sử khác.
TRANG CHỦ Thư mục chính của người dùng hiện tại; đối số mặc định cho cd được xây dựng trong
chỉ huy. Giá trị của biến này cũng được sử dụng khi thực hiện khai triển dấu ngã.
MÁY CHỦ
Chứa tên của một tệp ở định dạng giống như / Etc / hosts cái đó nên đọc
khi shell cần hoàn thành một tên máy chủ. Danh sách tên máy chủ có thể có
hoàn thành có thể được thay đổi trong khi trình bao đang chạy; tên máy chủ lần sau
hoàn thành được cố gắng sau khi giá trị được thay đổi, bash thêm nội dung của
tệp mới vào danh sách hiện có. Nếu như MÁY CHỦ được đặt, nhưng không có giá trị hoặc không
đặt tên cho một tệp có thể đọc được, bash cố gắng đọc / Etc / hosts để có được danh sách
hoàn thành tên máy chủ có thể. Khi nào MÁY CHỦ chưa được đặt, danh sách tên máy chủ là
đã xóa.
IFS Sản phẩm nội Phần máy phân ly được sử dụng để tách từ sau khi mở rộng và
chia dòng thành các từ với đọc lệnh nội trang. Giá trị mặc định là
`` ''.
BỎ QUA
Kiểm soát hoạt động của một trình bao tương tác khi nhận được một EOF nhân vật như
đầu vào duy nhất. Nếu được đặt, giá trị là số lượng liên tiếp EOF ký tự nào
phải được nhập các ký tự đầu tiên trên dòng nhập liệu trước bash lối thoát hiểm. Nếu
biến tồn tại nhưng không có giá trị số hoặc không có giá trị, mặc định
giá trị là 10. Nếu nó không tồn tại, EOF biểu thị sự kết thúc của đầu vào cho trình bao.
ĐẦU VÀO
Tên tệp cho đường dẫn tệp khởi động, ghi đè giá trị mặc định của ~ / .inputrc
(xem ĐỌC TIẾP dưới đây).
NGÔN NGỮ Được sử dụng để xác định danh mục ngôn ngữ cho bất kỳ danh mục nào không được chọn cụ thể
với một biến bắt đầu bằng LC_.
LC_ALL Biến này ghi đè giá trị của NGÔN NGỮ và bất kỳ khác LC_ biến xác định một
thể loại ngôn ngữ.
LC_THU THẬP
Biến này xác định thứ tự đối chiếu được sử dụng khi sắp xếp kết quả của
mở rộng tên đường dẫn và xác định hành vi của các biểu thức phạm vi, tính tương đương
các lớp và đối chiếu các trình tự trong phần mở rộng tên đường dẫn và đối sánh mẫu.
LC_CTYPE
Biến này xác định cách diễn giải các ký tự và hành vi của
các lớp ký tự trong phần mở rộng tên đường dẫn và so khớp mẫu.
LC_MESSAGES
Biến này xác định ngôn ngữ được sử dụng để dịch các chuỗi được trích dẫn kép
đứng trước một $.
LC_NUMERIC
Biến này xác định danh mục ngôn ngữ được sử dụng để định dạng số.
NGÀNH NGHỀ Được sử dụng bởi chọn lệnh ghép để xác định độ dài cột để in
danh sách lựa chọn. Tự động đặt nếu kiểm tra kích thước tùy chọn được bật hoặc trong một
vỏ tương tác khi nhận được một SIGWINCH.
MAIL Nếu tham số này được đặt thành tên tệp hoặc thư mục và ĐƯỜNG THƯ biến là
không được thiết lập, bash thông báo cho người dùng về sự xuất hiện của thư trong tệp được chỉ định hoặc
Thư mục định dạng maildir.
KIỂM TRA THƯ
Chỉ định tần suất (tính bằng giây) bash kiểm tra thư. Mặc định là 60 giây.
Khi đến lúc kiểm tra thư, trình bao sẽ làm như vậy trước khi hiển thị chính
lời nhắc. Nếu biến này không được đặt hoặc được đặt thành giá trị không phải là một số lớn hơn
lớn hơn hoặc bằng XNUMX, shell sẽ vô hiệu hóa tính năng kiểm tra thư.
ĐƯỜNG THƯ
Danh sách tên tệp được phân tách bằng dấu hai chấm để kiểm tra thư. Thông điệp được
được in khi thư đến trong một tệp cụ thể có thể được chỉ định bằng cách tách
tên tệp từ tin nhắn có dấu `? '. Khi được sử dụng trong văn bản của tin nhắn, $_
mở rộng đến tên của tệp thư hiện tại. Thí dụ:
ĐƯỜNG THƯ= '/ var / mail / bfox? "Bạn có thư":~ / shell-mail? "$ _ có thư!" '
Cú đánh cung cấp giá trị mặc định cho biến này, nhưng vị trí của thư người dùng
các tệp mà nó sử dụng phụ thuộc vào hệ thống (ví dụ: / var / mail /USER $).
OPTORR Nếu được đặt thành giá trị 1, bash hiển thị các thông báo lỗi được tạo bởi getopt
lệnh nội trang (xem SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây). OPTORR được khởi tạo thành 1
mỗi khi trình bao được gọi hoặc một tập lệnh trình bao được thực thi.
PATH Đường dẫn tìm kiếm lệnh. Nó là một danh sách các thư mục được phân tách bằng dấu hai chấm trong đó
shell tìm kiếm các lệnh (xem COMMAND CHẤP HÀNH phía dưới). Độ dài bằng XNUMX (null)
tên thư mục trong giá trị của PATH cho biết thư mục hiện tại. A null
tên thư mục có thể xuất hiện dưới dạng hai dấu hai chấm liền kề hoặc ở dạng đầu hoặc cuối
Đại tràng. Đường dẫn mặc định phụ thuộc vào hệ thống và được thiết lập bởi quản trị viên
cài đặt bash. Một giá trị chung là ``/ usr / local / bin:/ usr / local / sbin:/ usr / bin:
/ usr / sbin:/ thùng rác:/ sbin''.
POSIXLY_CORRECT
Nếu biến này ở trong môi trường khi bash bắt đầu, vỏ đi vào posix
chế độ trước khi đọc các tệp khởi động, như thể --posix tùy chọn yêu cầu đã được
đã cung cấp. Nếu nó được đặt trong khi trình bao đang chạy, bash cho phép posix chế độ, như thể
lệnh định -o posix đã được thực hiện.
PROMPT_COMMAND
Nếu được đặt, giá trị sẽ được thực thi dưới dạng lệnh trước khi đưa ra mỗi lời nhắc chính.
PROMPT_DIRTRIM
Nếu được đặt thành một số lớn hơn XNUMX, giá trị được sử dụng làm số theo sau
các thành phần thư mục để giữ lại khi mở rộng \w\W chuỗi nhắc nhở thoát
(xem KHUYẾN MÃI phía dưới). Các ký tự bị xóa được thay thế bằng một dấu chấm lửng.
PS1 Giá trị của tham số này được mở rộng (xem KHUYẾN MÃI dưới đây) và được sử dụng như
chuỗi lời nhắc chính. Giá trị mặc định là ``\ s- \ v \ $ ''.
PS2 Giá trị của tham số này được mở rộng như với PS1 và được sử dụng như thứ yếu
chuỗi nhắc nhở. Mặc định là ``> ''.
PS3 Giá trị của tham số này được sử dụng như lời nhắc cho chọn lệnh (xem SHELL
NGỮ PHÁP ở trên).
PS4 Giá trị của tham số này được mở rộng như với PS1 và giá trị được in trước
mỗi lệnh bash hiển thị trong một dấu vết thực thi. Nhân vật đầu tiên của PS4
được lặp lại nhiều lần, nếu cần, để chỉ ra nhiều cấp độ
sự chuyển hướng. Mặc định là ``+ ''.
SHELL Tên đường dẫn đầy đủ đến trình bao được giữ trong biến môi trường này. Nếu không phải vậy
đặt khi trình bao bắt đầu, bash gán cho nó tên đường dẫn đầy đủ của hiện tại
trình bao đăng nhập của người dùng.
ĐỊNH DẠNG THỜI GIAN
Giá trị của tham số này được sử dụng như một chuỗi định dạng chỉ định cách tính thời gian
thông tin cho các đường ống có tiền tố là thời gian từ dành riêng sẽ được hiển thị.
Sản phẩm % ký tự giới thiệu một chuỗi thoát được mở rộng thành giá trị thời gian hoặc
thông tin khác. Các trình tự thoát hiểm và ý nghĩa của chúng như sau; các
dấu ngoặc nhọn biểu thị các phần tùy chọn.
%% Một chữ %.
%[p] [l] R Thời gian trôi qua tính bằng giây.
%[p] [l] U Số giây CPU đã sử dụng ở chế độ người dùng.
%[p] [l] S Số giây CPU đã sử dụng ở chế độ hệ thống.
%P Phần trăm CPU, được tính bằng (% U +% S) /% R.

Tùy chọn p là một chữ số chỉ định chính xác, số chữ số phân số
sau dấu thập phân. Giá trị 0 không có dấu thập phân hoặc phân số
đầu ra. Có thể chỉ định nhiều nhất ba vị trí sau dấu thập phân; giá trị của p
lớn hơn 3 được đổi thành 3. Nếu p không được chỉ định, giá trị 3 được sử dụng.

Tùy chọn l chỉ định một định dạng dài hơn, bao gồm cả phút, của biểu mẫu MMmSS.FFs.
Giá trị của p xác định xem phân số có được đưa vào hay không.

Nếu biến này không được đặt, bash hành động như thể nó có giá trị
$ '\ nreal \ t% 3lR \ nuser \ t% 3lU \ nsys \ t% 3lS'. Nếu giá trị là null, không có thời gian
thông tin được hiển thị. Một dòng mới ở cuối được thêm vào khi chuỗi định dạng là
hiển thị.
TMOUT Nếu được đặt thành giá trị lớn hơn XNUMX, TMOUT được coi là thời gian chờ mặc định cho
các đọc được xây dựng trong. Các chọn lệnh kết thúc nếu đầu vào không đến sau
TMOUT giây khi đầu vào đến từ một thiết bị đầu cuối. Trong một trình bao tương tác,
giá trị được hiểu là số giây để đợi một dòng nhập sau
đưa ra lời nhắc chính. Cú đánh kết thúc sau khi chờ đợi số lượng
giây nếu một dòng đầu vào hoàn chỉnh không đến.
TMPDIR Nếu được đặt, bash sử dụng giá trị của nó làm tên của một thư mục trong đó bash tạo ra
các tệp tạm thời để sử dụng shell.
auto_resume
Biến này kiểm soát cách trình bao tương tác với người dùng và kiểm soát công việc. Nếu như
biến này được đặt, các lệnh đơn từ đơn không có chuyển hướng sẽ được xử lý
với tư cách là ứng cử viên tiếp tục công việc hiện tại đã dừng. Không có sự mơ hồ
cho phép; nếu có nhiều hơn một công việc bắt đầu với chuỗi được nhập, công việc
được truy cập gần đây nhất được chọn. Các tên của một công việc đã dừng, trong bối cảnh này, là
dòng lệnh được sử dụng để bắt đầu nó. Nếu được đặt thành giá trị chính xác, chuỗi được cung cấp
phải khớp chính xác tên công việc đã dừng; nếu được đặt thành chuỗi con, chuỗi
được cung cấp cần khớp với một chuỗi con của tên công việc đã dừng. Các chuỗi con
giá trị cung cấp chức năng tương tự như %? định danh công việc (xem VIỆC LÀM KIỂM SOÁT
phía dưới). Nếu được đặt thành bất kỳ giá trị nào khác, chuỗi được cung cấp phải là tiền tố của
tên công việc đã dừng; điều này cung cấp chức năng tương tự như %chuỗi việc làm
định danh.
biểu đồ
Hai hoặc ba ký tự kiểm soát mở rộng lịch sử và mã hóa (xem
LỊCH SỬ SỰ BÀNH TRƯỚNG phía dưới). Ký tự đầu tiên là lịch sử mở rộng tính cách,
ký tự báo hiệu sự bắt đầu của quá trình mở rộng lịch sử, thông thường '!'. Các
nhân vật thứ hai là nhanh chóng thay thế ký tự, được sử dụng như tốc ký
để chạy lại lệnh trước đó đã nhập, thay thế một chuỗi này cho một chuỗi khác trong
lệnh. Mặc định là `^'. Ký tự thứ ba tùy chọn là ký tự
cho biết rằng phần còn lại của dòng là một nhận xét khi được tìm thấy là đầu tiên
ký tự của một từ, thông thường '#'. Nhân vật bình luận lịch sử gây ra lịch sử
thay thế được bỏ qua cho các từ còn lại trên dòng. Nó không
nhất thiết phải khiến trình phân tích cú pháp shell coi phần còn lại của dòng là một nhận xét.

Mảng
Cú đánh cung cấp các biến mảng một chiều được lập chỉ mục và liên kết. Bất kỳ biến nào có thể
được sử dụng như một mảng được lập chỉ mục; các khai nội trang sẽ khai báo một mảng rõ ràng. Ở đó
không có giới hạn tối đa về kích thước của một mảng, cũng như không có bất kỳ yêu cầu nào về việc các thành viên phải được lập chỉ mục
hoặc được chỉ định liền kề. Các mảng được lập chỉ mục được tham chiếu bằng cách sử dụng số nguyên (bao gồm
biểu thức số học) và dựa trên XNUMX; mảng kết hợp được tham chiếu bằng cách sử dụng
chuỗi tùy ý. Trừ khi có ghi chú khác, các chỉ số mảng được lập chỉ mục phải không âm
số nguyên.

Một mảng được lập chỉ mục được tạo tự động nếu có bất kỳ biến nào được chỉ định sử dụng cú pháp
tên[chỉ số dưới]=giá trị. Các chỉ số dưới được coi như một biểu thức số học phải
đánh giá một số. Để khai báo rõ ràng một mảng được lập chỉ mục, hãy sử dụng khai -a tên (xem
SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây). khai -a tên[chỉ số dưới] cũng được chấp nhận; các chỉ số dưới
bị bỏ qua.

Mảng liên kết được tạo bằng cách sử dụng khai -A tên.

Các thuộc tính có thể được chỉ định cho một biến mảng bằng cách sử dụng khaichỉ đọc nội trang.
Mỗi thuộc tính áp dụng cho tất cả các thành viên của một mảng.

Mảng được chỉ định để sử dụng phép gán ghép của biểu mẫu tên=(giá trị1 ... giá trịn),
mỗi nơi giá trị có dạng [chỉ số dưới]=chuỗi. Chỉ định mảng được lập chỉ mục không
yêu cầu bất cứ điều gì nhưng chuỗi. Khi gán cho các mảng được lập chỉ mục, nếu dấu ngoặc
và chỉ số con được cung cấp, chỉ mục đó được gán cho; nếu không thì chỉ mục của phần tử
được chỉ định là chỉ mục cuối cùng được chỉ định bởi câu lệnh cộng một. Lập chỉ mục bắt đầu lúc
số không.

Khi gán cho một mảng kết hợp, chỉ số con là bắt buộc.

Cú pháp này cũng được chấp nhận bởi khai được xây dựng trong. Các phần tử mảng riêng lẻ có thể là
được chỉ định sử dụng tên[chỉ số dưới]=giá trị cú pháp đã giới thiệu ở trên. Khi gán cho một
mảng được lập chỉ mục, nếu tên được mô tả bằng một số âm, số đó được hiểu là
liên quan đến một lớn hơn chỉ số tối đa của tên, do đó, các chỉ số âm sẽ tính ngược lại
từ cuối mảng và chỉ số -1 tham chiếu đến phần tử cuối cùng.

Bất kỳ phần tử nào của một mảng đều có thể được tham chiếu bằng cách sử dụng $ {tên[chỉ số dưới]}. Niềng răng là
cần thiết để tránh xung đột với việc mở rộng tên đường dẫn. Nếu như chỉ số dưới is @ or *, từ
mở rộng cho tất cả các thành viên của tên. Các chỉ số dưới này chỉ khác nhau khi từ xuất hiện bên trong
dấu ngoặc kép. Nếu từ được đặt trong dấu ngoặc kép, $ {tên[*]} mở rộng thành một từ duy nhất với
giá trị của mỗi thành viên mảng được phân tách bằng ký tự đầu tiên của IFS biến đặc biệt,
và $ {tên[@]} mở rộng từng phần tử của tên thành một từ riêng biệt. Khi không có mảng
thành viên, $ {tên[@]} mở rộng thành không. Nếu phần mở rộng được trích dẫn kép xảy ra trong
từ, phần mở rộng của tham số đầu tiên được kết hợp với phần đầu của
từ gốc và phần mở rộng của tham số cuối cùng được kết hợp với phần cuối cùng của
từ gốc. Điều này tương tự với việc mở rộng các tham số đặc biệt *@ (xem
Reduct ® Thông số bên trên). $ {#tên[chỉ số dưới]} mở rộng đến độ dài của
${tên[chỉ số dưới]}. Nếu như chỉ số dưới is * or @, phần mở rộng là số phần tử trong
mảng. Tham chiếu đến một biến mảng mà không có chỉ số con tương đương với tham chiếu
mảng có chỉ số con bằng 0. Nếu chỉ số dưới được sử dụng để tham chiếu một phần tử của một
mảng được lập chỉ mục đánh giá là một số nhỏ hơn XNUMX, nó được hiểu là liên quan đến một
lớn hơn chỉ số tối đa của mảng, do đó, các chỉ số âm tính ngược lại từ cuối
của mảng và chỉ số -1 tham chiếu đến phần tử cuối cùng.

Một biến mảng được coi là được đặt nếu một chỉ số con đã được gán một giá trị. Null
chuỗi là một giá trị hợp lệ.

Có thể lấy các khóa (chỉ số) của một mảng cũng như các giá trị.
${!tên[@]} và $ {!tên[*]} mở rộng đến các chỉ số được chỉ định trong biến mảng tên. Các
xử lý khi trong dấu ngoặc kép tương tự như việc mở rộng các tham số đặc biệt @
* trong dấu ngoặc kép.

Sản phẩm không đặt nội trang được sử dụng để phá hủy các mảng. không đặt tên[chỉ số dưới] phá hủy mảng
phần tử ở chỉ mục chỉ số dưới. Các chỉ số con phủ định đối với các mảng được lập chỉ mục được hiểu là
miêu tả trên. Cần phải cẩn thận để tránh các tác dụng phụ không mong muốn do tên đường dẫn gây ra
sự bành trướng. không đặt tên, Nơi tên là một mảng, hoặc không đặt tên[chỉ số dưới], ở đâu chỉ số dưới
is * or @, loại bỏ toàn bộ mảng.

Sản phẩm khai, địa phươngchỉ đọc nội trang từng chấp nhận một -a tùy chọn để chỉ định một lập chỉ mục
mảng và một -A tùy chọn để chỉ định một mảng kết hợp. Nếu cả hai tùy chọn được cung cấp, -A
được ưu tiên. Các đọc nội trang chấp nhận một -a tùy chọn để chỉ định một danh sách các từ đã đọc
từ đầu vào chuẩn đến một mảng. Các địnhkhai nội trang hiển thị các giá trị mảng trong
một cách cho phép chúng được sử dụng lại làm nhiệm vụ.

SỰ BÀNH TRƯỚNG


Việc mở rộng được thực hiện trên dòng lệnh sau khi nó đã được tách thành các từ. Có
bảy loại mở rộng được thực hiện: nẹp mở rộng, dấu ngã mở rộng, tham số
biến mở rộng, lệnh thay thế, số học mở rộng, lời chia tách
tên đường dẫn mở rộng.

Thứ tự của các khai triển là: khai triển dấu ngoặc nhọn; khai triển dấu ngã, tham số và biến
mở rộng, mở rộng số học và thay thế lệnh (thực hiện từ trái sang phải
thời trang); tách từ; và mở rộng tên đường dẫn.

Trên các hệ thống có thể hỗ trợ nó, có sẵn một bản mở rộng bổ sung: quá trình
thay thế. Điều này được thực hiện cùng lúc với dấu ngã, tham số, biến và
khai triển số học và thay thế lệnh.

Chỉ mở rộng dấu ngoặc nhọn, tách từ và mở rộng tên đường dẫn mới có thể thay đổi số lượng
từ của sự mở rộng; các phần mở rộng khác mở rộng một từ thành một từ duy nhất. Duy nhất
ngoại lệ cho điều này là sự mở rộng của "$@"Và"${tên[@]}"như đã giải thích ở trên (xem
THÔNG SỐ).

Cú đúp Sự bành trướng
Cú đúp mở rộng là một cơ chế mà các chuỗi tùy ý có thể được tạo ra. Điều này
cơ chế tương tự như tên đường dẫn mở rộng, nhưng các tên tệp được tạo không cần tồn tại.
Các mẫu được mở rộng dấu ngoặc nhọn có dạng tùy chọn lời mở đầu, theo sau là một
chuỗi các chuỗi được phân tách bằng dấu phẩy hoặc một biểu thức chuỗi giữa một cặp dấu ngoặc nhọn,
tiếp theo là một tùy chọn postscript. Phần mở đầu được đặt trước cho mỗi chuỗi chứa
trong dấu ngoặc và sau đó tái bút được nối vào mỗi chuỗi kết quả, mở rộng
trái sang phải.

Mở rộng dấu ngoặc nhọn có thể được lồng vào nhau. Kết quả của mỗi chuỗi mở rộng không được sắp xếp; bên trái
để đúng thứ tự được giữ nguyên. Ví dụ, một{d, c, b}e mở rộng thành `ade ace abe '.

Một biểu thức trình tự có dạng {x..y[..gia tăng]}, Nơi xy là số nguyên hoặc
các ký tự đơn lẻ, và gia tăng, một gia số tùy chọn, là một số nguyên. Khi số nguyên là
được cung cấp, biểu thức mở rộng thành từng số giữa xy, bao gồm. Đã cung cấp
số nguyên có thể được bắt đầu bằng 0 để buộc mỗi số hạng phải có cùng chiều rộng. Khi một trong hai x
or y bắt đầu bằng số XNUMX, trình bao cố gắng buộc tất cả các điều khoản đã tạo phải chứa
cùng một số chữ số, không đệm ở những nơi cần thiết. Khi các ký tự được cung cấp,
biểu thức mở rộng đến từng ký tự theo từ điển giữa xy, bao gồm, sử dụng
ngôn ngữ C mặc định. Lưu ý rằng cả hai xy phải cùng loại. Khi mà
gia số được cung cấp, nó được sử dụng như sự khác biệt giữa mỗi thuật ngữ. Mặc định
gia số là 1 hoặc -1 nếu thích hợp.

Mở rộng dấu ngoặc nhọn được thực hiện trước bất kỳ mở rộng nào khác và bất kỳ ký tự đặc biệt nào đối với
các phần mở rộng khác được giữ nguyên trong kết quả. Nó hoàn toàn là văn bản. Cú đánh không
áp dụng bất kỳ diễn giải cú pháp nào cho ngữ cảnh của phần mở rộng hoặc văn bản giữa
niềng răng.

Một mở rộng dấu ngoặc nhọn được định hình chính xác phải chứa các dấu ngoặc nhọn mở và đóng không được trích dẫn, và
ít nhất một dấu phẩy không được trích dẫn hoặc một biểu thức chuỗi hợp lệ. Bất kỳ dấu ngoặc nhọn nào được tạo không chính xác
mở rộng không thay đổi. MỘT { or , có thể được trích dẫn với một dấu gạch chéo ngược để ngăn chặn sự tồn tại của nó
được coi là một phần của biểu thức dấu ngoặc nhọn. Để tránh xung đột với việc mở rộng tham số,
chuỗi ${ không được coi là đủ điều kiện để mở rộng nẹp.

Cấu trúc này thường được sử dụng như viết tắt khi tiền tố chung của các chuỗi là
được tạo dài hơn trong ví dụ trên:

mkdir / usr / local / src / bash / {old, new, dist, bug}
or
củ chặt / usr /{ucb / {ex, edit}, lib / {ex?.? *, how_ex}}

Mở rộng Brace gây ra một chút không tương thích với các phiên bản lịch sử của sh. sh
không coi dấu ngoặc nhọn mở hoặc đóng đặc biệt khi chúng xuất hiện như một phần của từ, và
bảo quản chúng trong đầu ra. Cú đánh loại bỏ dấu ngoặc nhọn khỏi các từ như một hệ quả của dấu ngoặc
sự bành trướng. Ví dụ, một từ được nhập vào sh as tệp {1,2} xuất hiện giống hệt nhau trong
đầu ra. Cùng một từ được xuất ra dưới dạng tệp1 tệp2 sau khi mở rộng bởi bash. Nếu nghiêm ngặt
tương thích với sh là mong muốn, bắt đầu bash với +B tùy chọn hoặc tắt mở rộng dấu ngoặc nhọn
với +B tùy chọn cho định lệnh (xem SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây).

dấu ngã Sự bành trướng
Nếu một từ bắt đầu bằng một ký tự dấu ngã không được trích dẫn (`~'), tất cả các ký tự đứng trước
dấu gạch chéo không được trích dẫn đầu tiên (hoặc tất cả các ký tự, nếu không có dấu gạch chéo chưa được trích dẫn) được coi là
a tiền tố dấu ngã. Nếu không có ký tự nào trong tiền tố dấu ngã được trích dẫn, các ký tự
ở tiền tố dấu ngã sau dấu ngã được coi là có thể đăng nhập tên. Nếu điều này
tên đăng nhập là chuỗi rỗng, dấu ngã được thay thế bằng giá trị của tham số shell
TRANG CHỦ. Nếu TRANG CHỦ không được đặt, thư mục chính của người dùng thực thi trình bao được thay thế
thay thế. Nếu không, tiền tố dấu ngã được thay thế bằng thư mục chính được liên kết với
tên đăng nhập được chỉ định.

Nếu tiền tố dấu ngã là dấu `~ + ', giá trị của biến shell PWD thay thế dấu ngã-
tiếp đầu ngữ. Nếu tiền tố dấu ngã là dấu `~ - ', giá trị của biến shell CAO TUỔI, nếu nó là
bộ, được thay thế. Nếu các ký tự theo sau dấu ngã trong tiền tố dấu ngã bao gồm
một số N, có tiền tố tùy chọn bằng dấu `+ 'hoặc dấu' - ', tiền tố dấu ngã được thay thế bằng
phần tử tương ứng từ ngăn xếp thư mục, vì nó sẽ được hiển thị bởi dirs
nội trang được gọi với tiền tố dấu ngã làm đối số. Nếu các ký tự sau
dấu ngã trong tiền tố dấu ngã bao gồm một số không có dấu `+ 'hoặc` -' đứng đầu, `` + 'là
giả định.

Nếu tên đăng nhập không hợp lệ hoặc mở rộng dấu ngã không thành công, thì từ đó sẽ không thay đổi.

Mỗi phép gán biến được kiểm tra các tiền tố dấu ngã chưa được trích dẫn ngay sau một :
hoặc người đầu tiên =. Trong những trường hợp này, mở rộng dấu ngã cũng được thực hiện. Do đó, một người có thể
sử dụng tên tệp có dấu ngã trong các bài tập cho PATH, ĐƯỜNG THƯCDPATH, và vỏ
chỉ định giá trị được mở rộng.

Tham số Sự bành trướng
Các `$ký tự 'giới thiệu mở rộng tham số, thay thế lệnh hoặc số học
sự bành trướng. Tên tham số hoặc ký hiệu được mở rộng có thể được đặt trong dấu ngoặc
là tùy chọn nhưng phục vụ để bảo vệ biến được mở rộng khỏi các ký tự ngay lập tức
theo sau nó có thể được hiểu là một phần của tên.

Khi sử dụng dấu ngoặc nhọn, dấu ngoặc nhọn kết thúc phù hợp là dấu đầu tiên `}'không trốn thoát bởi một
dấu gạch chéo ngược hoặc trong một chuỗi được trích dẫn và không nằm trong một khai triển số học được nhúng,
thay thế lệnh hoặc mở rộng tham số.

${tham số}
Giá trị của tham số được thay thế. Niềng răng được yêu cầu khi tham số là một
tham số vị trí có nhiều hơn một chữ số hoặc khi tham số được theo sau bởi một
ký tự không được hiểu là một phần của tên của nó. Các tham số là một
tham số shell như mô tả ở trên THÔNG SỐ) hoặc một tham chiếu mảng (Mảng).

Nếu ký tự đầu tiên của tham số là một dấu chấm than (!), nó giới thiệu một mức độ
biến hướng. Cú đánh sử dụng giá trị của biến được hình thành từ phần còn lại của
tham số như tên của biến; biến này sau đó được mở rộng và giá trị đó là
được sử dụng trong phần còn lại của sự thay thế, thay vì giá trị của tham số chinh no. Đây là
được biết như không trực tiếp mở rộng. Các trường hợp ngoại lệ cho điều này là sự mở rộng của $ {!tiếp đầu ngữ*} và
${!tên[@]} được mô tả dưới đây. Dấu chấm than phải ngay sau dấu ngoặc nhọn bên trái.
để giới thiệu chuyển hướng.

Trong mỗi trường hợp dưới đây, lời có thể mở rộng dấu ngã, mở rộng tham số,
thay thế lệnh và mở rộng số học.

Khi không thực hiện mở rộng chuỗi con, hãy sử dụng các biểu mẫu được ghi bên dưới (ví dụ: :-), bash
kiểm tra một tham số chưa được đặt hoặc null. Việc bỏ qua dấu hai chấm chỉ dẫn đến một bài kiểm tra
cho một tham số chưa được đặt.

${tham số:-lời}
Sử dụng Mặc định Các giá trị. Nếu tham số không được đặt hoặc không, sự mở rộng của lời is
được thay thế. Nếu không, giá trị của tham số được thay thế.
${tham số:=lời}
Chỉ định Mặc định Các giá trị. Nếu tham số không được đặt hoặc không, sự mở rộng của lời is
phân công tham số. Giá trị của tham số sau đó được thay thế. Vị trí
các tham số và các tham số đặc biệt có thể không được gán theo cách này.
${tham số:?lời}
Giao diện lỗi if Null or Bỏ đặt. Nếu tham số là null hoặc không được đặt, sự mở rộng của
lời (hoặc một thông báo có hiệu lực nếu lời không có mặt) được viết cho
lỗi tiêu chuẩn và trình bao, nếu nó không tương tác, sẽ thoát. Nếu không
giá trị của tham số được thay thế.
${tham số:+lời}
Sử dụng Luân phiên Giá trị. Nếu tham số là null hoặc không được đặt, không có gì được thay thế,
nếu không thì sự mở rộng của lời được thay thế.
${tham số:bù đắp}
${tham số:bù đắp:chiều dài}
Chuỗi con Sự bành trướng. Mở rộng lên đến chiều dài các ký tự của giá trị tham số
bắt đầu từ ký tự được chỉ định bởi bù đắp. Nếu tham số is @, một mảng được lập chỉ mục
đăng ký bởi @ or *hoặc một tên mảng liên kết, kết quả khác nhau như
được mô tả dưới đây. Nếu như chiều dài bị bỏ qua, mở rộng thành chuỗi con của giá trị
tham số bắt đầu từ ký tự được chỉ định bởi bù đắp và kéo dài đến cuối
giá trị. chiều dàibù đắp là các biểu thức số học (xem MÔN SỐ HỌC ĐÁNH GIÁ
dưới đây).

If bù đắp đánh giá là một số nhỏ hơn XNUMX, giá trị được sử dụng như một phần bù trong
ký tự từ cuối giá trị của tham số. Nếu chiều dài đánh giá một số
nhỏ hơn XNUMX, nó được hiểu là một khoảng chênh lệch trong các ký tự từ cuối dấu
giá trị của tham số thay vì một số ký tự, và phần mở rộng là
ký tự giữa bù đắp và kết quả đó. Lưu ý rằng phần bù âm phải là
ngăn cách với dấu hai chấm bằng ít nhất một dấu cách để tránh bị nhầm lẫn với :-
sự bành trướng.

If tham số is @, kết quả là chiều dài tham số vị trí bắt đầu từ bù đắp.
Một tiêu cực bù đắp được lấy liên quan đến một vị trí lớn hơn vị trí lớn nhất
tham số, do đó, độ lệch -1 đánh giá đến tham số vị trí cuối cùng. Nó là một
lỗi mở rộng nếu chiều dài đánh giá một số nhỏ hơn XNUMX.

If tham số là một tên mảng được lập chỉ mục được ký hiệu bởi @ hoặc *, kết quả là
chiều dài các thành viên của mảng bắt đầu bằng $ {tham số[bù đắp]}. Một tiêu cực bù đắp
được lấy liên quan đến một chỉ số lớn hơn chỉ số tối đa của mảng được chỉ định. Nó
là một lỗi mở rộng nếu chiều dài đánh giá một số nhỏ hơn XNUMX.

Mở rộng chuỗi con được áp dụng cho một mảng kết hợp tạo ra kết quả không xác định.

Lập chỉ mục chuỗi con dựa trên XNUMX trừ khi các tham số vị trí được sử dụng, trong
trong trường hợp đó, lập chỉ mục bắt đầu từ 1 theo mặc định. Nếu như bù đắp là 0 và vị trí
các tham số được sử dụng, $0 được đặt trước danh sách.

${!tiếp đầu ngữ*}
${!tiếp đầu ngữ@}
tên phù hợp tiếp đầu ngữ. Mở rộng đến tên của các biến có tên bắt đầu bằng
tiếp đầu ngữ, được phân tách bằng ký tự đầu tiên của IFS biến đặc biệt. Khi nào @ is
được sử dụng và phần mở rộng xuất hiện trong dấu ngoặc kép, mỗi tên biến sẽ mở rộng thành
một từ riêng biệt.

${!tên[@]}
${!tên[*]}
Danh sách of mảng phím. Nếu tên là một biến mảng, mở rộng đến danh sách mảng
chỉ số (khóa) được chỉ định trong tên. Nếu tên không phải là một mảng, mở rộng thành 0 nếu tên is
đặt và null nếu không. Khi nào @ được sử dụng và phần mở rộng xuất hiện trong phạm vi kép
dấu ngoặc kép, mỗi phím mở rộng thành một từ riêng biệt.

${#tham số}
Tham số chiều dài. Độ dài tính bằng ký tự của giá trị tham số is
được thay thế. Nếu như tham số is * or @, giá trị được thay thế là số
các tham số vị trí. Nếu như tham số là một tên mảng được ký hiệu bởi * or @, Các
giá trị được thay thế là số phần tử trong mảng. Nếu như tham số là một
tên mảng được lập chỉ mục được đánh dấu bằng một số âm, số đó được hiểu là
liên quan đến một lớn hơn chỉ số tối đa của tham số, vì vậy chỉ số âm
đếm ngược từ cuối mảng và chỉ số -1 tham chiếu đến cuối cùng
thành phần.

${tham số#lời}
${tham số##lời}
Hủy bỏ phù hợp tiếp đầu ngữ Belt Hold. Các lời được mở rộng để tạo ra một mẫu giống như
trong phần mở rộng tên đường dẫn. Nếu mẫu khớp với phần đầu của giá trị
tham số, thì kết quả của việc mở rộng là giá trị được mở rộng của tham số với
mẫu phù hợp ngắn nhất (``#'' trường hợp) hoặc mẫu phù hợp dài nhất (
``##'' case) đã bị xóa. Nếu như tham số is @ or *, hoạt động loại bỏ mẫu là
lần lượt được áp dụng cho từng tham số vị trí và việc mở rộng là kết quả
danh sách. Nếu như tham số là một biến mảng được đánh dấu bằng @ or *, mô hình
thao tác loại bỏ lần lượt được áp dụng cho từng thành viên của mảng và việc mở rộng
là danh sách kết quả.

${tham số%lời}
${tham số%%lời}
Hủy bỏ phù hợp hậu tố Belt Hold. Các lời được mở rộng để tạo ra một mẫu giống như
trong phần mở rộng tên đường dẫn. Nếu mẫu khớp với một phần ở cuối của phần mở rộng
giá trị của tham số, thì kết quả của việc mở rộng là giá trị được mở rộng của
tham số với mẫu phù hợp ngắn nhất (``%trường hợp '') hoặc dài nhất
phù hợp với mô hình (``%%'' case) đã bị xóa. Nếu như tham số is @ or *, mô hình
thao tác loại bỏ lần lượt được áp dụng cho từng tham số vị trí, và
mở rộng là danh sách kết quả. Nếu như tham số là một biến mảng được chỉ định dưới dạng con
với @ or *, thao tác loại bỏ mẫu được áp dụng cho từng thành viên của mảng
đến lượt mình, và phần mở rộng là danh sách kết quả.

${tham số/Belt Hold/chuỗi}
Họa tiết thay thế. Các Belt Hold được mở rộng để tạo ra một mẫu giống như trong
mở rộng tên đường dẫn. Tham số được mở rộng và là trận đấu dài nhất trong số Belt Hold chống lại
giá trị của nó được thay thế bằng chuỗi. Nếu Belt Hold bắt đầu với /, tất cả các trận đấu của
Belt Hold được thay thế bằng chuỗi. Bình thường chỉ thay trận đầu tiên. Nếu như
Belt Hold bắt đầu với #, nó phải khớp ở đầu giá trị được mở rộng của
tham số. Nếu Belt Hold bắt đầu với %, nó phải khớp ở cuối phần mở rộng
giá trị của tham số. Nếu chuỗi là null, các trận đấu của Belt Hold bị xóa và /
tiếp theo Belt Hold có thể được bỏ qua. Nếu như tham số is @ or *, sự thay thế
phép toán lần lượt được áp dụng cho từng tham số vị trí và phần mở rộng là
danh sách kết quả. Nếu như tham số là một biến mảng được đánh dấu bằng @ or *, Các
phép toán thay thế lần lượt được áp dụng cho từng thành viên của mảng và
mở rộng là danh sách kết quả.

${tham số^Belt Hold}
${tham số^^Belt Hold}
${tham số,Belt Hold}
${tham số,,Belt Hold}
Khay sửa đổi. Mở rộng này sửa đổi trường hợp của các ký tự chữ cái trong
tham số. Các Belt Hold được mở rộng để tạo ra một mẫu giống như trong tên đường dẫn
sự bành trướng. Mỗi ký tự trong giá trị mở rộng của tham số được kiểm tra chống lại
Belt Holdvà, nếu nó khớp với mẫu, thì trường hợp của nó sẽ được chuyển đổi. Mô hình nên
không cố gắng khớp nhiều hơn một ký tự. Các ^ toán tử chuyển đổi chữ thường
các chữ cái khớp với nhau Belt Hold Đến trường hợp trên; các , toán tử chuyển đổi chữ hoa phù hợp
chữ cái sang chữ thường. Các ^^,, mở rộng chuyển đổi từng ký tự phù hợp trong
giá trị mở rộng; các ^, mở rộng phù hợp và chỉ chuyển đổi đầu tiên
ký tự trong giá trị được mở rộng. Nếu như Belt Hold bị bỏ qua, nó được coi như một ?,
phù hợp với mọi ký tự. Nếu như tham số is @ or *, sửa đổi trường hợp
phép toán lần lượt được áp dụng cho từng tham số vị trí và phần mở rộng là
danh sách kết quả. Nếu như tham số là một biến mảng được đánh dấu bằng @ or *, Các
thao tác sửa đổi trường hợp lần lượt được áp dụng cho từng thành viên của mảng và
mở rộng là danh sách kết quả.

Lệnh Thay thế
Lệnh thay thế cho phép xuất một lệnh thay thế tên lệnh. Ở đó
là hai dạng:

$(lệnh)
or
`lệnh`

Cú đánh thực hiện việc mở rộng bằng cách thực thi lệnh và thay thế lệnh thay thế
với đầu ra tiêu chuẩn của lệnh, với mọi dòng mới ở cuối bị xóa. Được nhúng
dòng mới không bị xóa, nhưng chúng có thể bị xóa trong quá trình tách từ. Lệnh
thay thế $ (con mèo hồ sơ) có thể được thay thế bằng loại tương đương nhưng nhanh hơn $ ( hồ sơ).

Khi sử dụng hình thức thay thế dấu gạch chéo ngược kiểu cũ, dấu gạch chéo ngược vẫn giữ nguyên
nghĩa là ngoại trừ khi được theo sau bởi $, `, hoặc là \. Phần trích dẫn đầu tiên không đứng trước một
dấu gạch chéo ngược chấm dứt việc thay thế lệnh. Khi sử dụng $ (lệnh) hình thức, tất cả
các ký tự giữa các dấu ngoặc đơn tạo nên lệnh; không có cái nào được đối xử đặc biệt.

Các lệnh thay thế có thể được lồng vào nhau. Để lồng vào nhau khi sử dụng biểu mẫu được trích dẫn lại, hãy thoát khỏi
dấu ngoặc kép bên trong có dấu gạch chéo ngược.

Nếu thay thế xuất hiện trong dấu ngoặc kép, tách từ và mở rộng tên đường dẫn
không được thực hiện trên các kết quả.

toán học Sự bành trướng
Khai triển số học cho phép đánh giá một biểu thức số học và
thay thế kết quả. Định dạng cho khai triển số học là:

$ ((biểu hiện))

Định dạng cũ $[biểu hiện] không được dùng nữa và sẽ bị xóa trong các phiên bản sắp tới của
khà khà.

Sản phẩm biểu hiện được coi như thể nó nằm trong dấu ngoặc kép, nhưng bên trong dấu ngoặc kép
dấu ngoặc đơn không được xử lý đặc biệt. Tất cả các mã thông báo trong biểu thức đều trải qua tham số
và mở rộng biến, thay thế lệnh và loại bỏ dấu ngoặc kép. Kết quả được coi là
biểu thức số học được đánh giá. Các khai triển số học có thể được lồng vào nhau.

Việc đánh giá được thực hiện theo các quy tắc được liệt kê dưới đây theo MÔN SỐ HỌC
ĐÁNH GIÁ. Nếu biểu hiện không có hiệu lực, bash in một thông báo cho biết thất bại và không
thay thế xảy ra.

Quy trình xét duyệt Thay thế
Quy trình xét duyệt thay thế được hỗ trợ trên các hệ thống hỗ trợ các đường ống được đặt tên (FIFO) hoặc là
/ dev / fd phương pháp đặt tên tệp đang mở. Nó có dạng <( ) or >( ). Các
quá trình được chạy với đầu vào hoặc đầu ra của nó được kết nối với FIFO hoặc một số tệp trong / dev / fd.
Tên của tệp này được chuyển làm đối số cho lệnh hiện tại do kết quả của
sự bành trướng. Nếu >( ) biểu mẫu được sử dụng, việc ghi vào tệp sẽ cung cấp đầu vào cho .
Nếu <( ) biểu mẫu được sử dụng, tệp được truyền dưới dạng đối số phải được đọc để có được
đầu ra của .

Khi có sẵn, quá trình thay thế được thực hiện đồng thời với tham số và
mở rộng biến, thay thế lệnh và mở rộng số học.

Từ Tách
Trình bao quét các kết quả của việc mở rộng tham số, thay thế lệnh và số học
mở rộng không xảy ra trong dấu ngoặc kép cho lời chia tách.

Vỏ xử lý từng ký tự của IFS như một dấu phân cách và tách các kết quả của cái kia
mở rộng thành các từ sử dụng các ký tự này làm dấu kết thúc trường. Nếu như IFS chưa được đặt, hoặc
giá trị của nó là chính xác , mặc định, sau đó là chuỗi , ,
ở đầu và cuối kết quả của các lần mở rộng trước đó là
bị bỏ qua và bất kỳ chuỗi nào của IFS các ký tự không ở đầu hoặc cuối dùng để phân tách
từ. Nếu như IFS có giá trị khác với giá trị mặc định, sau đó là các chuỗi của khoảng trắng
nhân vật không gianchuyển hướng được bỏ qua ở đầu và cuối từ, miễn là
ký tự khoảng trắng có giá trị là IFS (Một IFS ký tự khoảng trắng). Nhân vật bất kỳ
in IFS đó không phải là IFS khoảng trắng, cùng với bất kỳ IFS ký tự khoảng trắng,
phân định một trường. Một chuỗi của IFS các ký tự khoảng trắng cũng được coi là dấu phân cách.
Nếu giá trị của IFS là null, không có tách từ nào xảy ra.

Đối số rỗng rõ ràng ("" or '') được giữ lại. Đối số rỗng ngầm ẩn chưa được trích dẫn,
dẫn đến việc mở rộng các tham số không có giá trị, bị loại bỏ. Nếu một
tham số không có giá trị được mở rộng trong dấu ngoặc kép, kết quả là đối số rỗng và là
giữ lại.

Lưu ý rằng nếu không có sự mở rộng nào xảy ra, thì không có quá trình chia tách nào được thực hiện.

Tên đường dẫn Sự bành trướng
Sau khi tách từ, trừ khi -f tùy chọn đã được thiết lập, bash quét từng từ để tìm
nhân vật *, ?[. Nếu một trong những ký tự này xuất hiện, thì từ đó được coi là
a Belt Holdvà được thay thế bằng danh sách tên tệp được sắp xếp theo thứ tự bảng chữ cái phù hợp với
mẫu (xem Họa tiết Phù hợp phía dưới). Nếu không tìm thấy tên tệp phù hợp và trình bao
tùy chọn nullglob không được kích hoạt, từ được giữ nguyên. Nếu nullglob Tùy chọn là
và không tìm thấy kết quả phù hợp nào, từ này sẽ bị xóa. Nếu thất bại tùy chọn shell được thiết lập,
và không tìm thấy kết quả phù hợp nào, thông báo lỗi được in và lệnh không được thực thi. Nếu như
tùy chọn vỏ nocaseglob được kích hoạt, trận đấu được thực hiện mà không liên quan đến trường hợp
của các ký tự chữ cái. Lưu ý rằng khi sử dụng các biểu thức phạm vi như [az] (xem bên dưới),
các chữ cái của trường hợp khác có thể được bao gồm, tùy thuộc vào cài đặt của LC_THU THẬP. Khi một
mẫu được sử dụng để mở rộng tên đường dẫn, ký tự ``. '' ở đầu một cái tên hoặc
ngay sau dấu gạch chéo phải được đối sánh rõ ràng, trừ khi tùy chọn shell dotglob
được thiết lập. Khi đối sánh tên đường dẫn, ký tự gạch chéo phải luôn được đối sánh rõ ràng.
Trong các trường hợp khác, ``. '' nhân vật không được đối xử đặc biệt. Xem mô tả của
xô đẩy dưới dưới SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG cho một mô tả về nocaseglob, nullglob,
thất bạidotglob tùy chọn vỏ.

Sản phẩm TOÀN CẦU biến shell có thể được sử dụng để hạn chế tập hợp các tên tệp phù hợp với
Belt Hold. Nếu TOÀN CẦU được đặt, mỗi tên tệp phù hợp cũng khớp với một trong các
mô hình trong TOÀN CẦU bị xóa khỏi danh sách các trận đấu. Tên tệp ``. ''
`` .. '' luôn luôn bị bỏ qua khi TOÀN CẦU được đặt và không rỗng. Tuy nhiên, thiết lập
TOÀN CẦU thành một giá trị khác rỗng có tác dụng cho phép dotglob tùy chọn vỏ, vì vậy tất cả
các tên tệp khác bắt đầu bằng ``. '' sẽ phù hợp. Để có được hành vi cũ là phớt lờ
tên tệp bắt đầu bằng ``. '', chế tạo ``. * '' một trong những mô hình trong TOÀN CẦU. Các
dotglob tùy chọn bị vô hiệu hóa khi TOÀN CẦU chưa được đặt.

Họa tiết Phù hợp

Bất kỳ ký tự nào xuất hiện trong một mẫu, ngoại trừ các ký tự mẫu đặc biệt
được mô tả dưới đây, khớp với chính nó. Ký tự NUL có thể không xuất hiện trong một mẫu. MỘT
dấu gạch chéo ngược thoát khỏi ký tự sau; dấu gạch chéo ngược thoát bị loại bỏ khi
sự phù hợp. Các ký tự mẫu đặc biệt phải được trích dẫn nếu chúng được khớp với nhau
nghĩa đen

Các ký tự hoa văn đặc biệt có ý nghĩa sau:

* Khớp với bất kỳ chuỗi nào, bao gồm cả chuỗi null. Khi mà sao cầu shell
tùy chọn được bật và * được sử dụng trong ngữ cảnh mở rộng tên đường dẫn, hai
liền kề *s được sử dụng như một mẫu duy nhất sẽ khớp với tất cả các tệp và không hoặc nhiều hơn
thư mục và thư mục con. Nếu theo sau bởi một /, hai liền kề *sẽ
chỉ khớp các thư mục và thư mục con.
? Khớp với bất kỳ ký tự đơn nào.
[...] Khớp với bất kỳ một trong các ký tự kèm theo. Một cặp ký tự được phân tách
bởi một dấu gạch nối biểu thị một phạm vi biểu hiện; bất kỳ ký tự nào nằm giữa
hai ký tự đó, bao gồm, sử dụng đối chiếu của ngôn ngữ hiện tại
trình tự và bộ ký tự, được khớp. Nếu ký tự đầu tiên sau
các [ là một ! hoặc một ^ thì bất kỳ ký tự nào không kèm theo đều được so khớp. Các
thứ tự sắp xếp của các ký tự trong biểu thức phạm vi được xác định bởi
ngôn ngữ hiện tại và các giá trị của LC_THU THẬP or LC_ALL biến shell,
nếu được thiết lập. Để có được cách giải thích truyền thống của các biểu thức phạm vi,
Ở đâu [quảng cáo] tương đương với [A B C D], giá trị đặt của LC_ALL biến shell
đến Choặc kích hoạt toàn cầu tùy chọn vỏ. MỘT - có thể được kết hợp bởi
bao gồm nó như là ký tự đầu tiên hoặc cuối cùng trong tập hợp. MỘT ] có thể được kết hợp
bằng cách đưa nó vào làm ký tự đầu tiên trong tập hợp.

Trong thời hạn [], tính cách các lớp học có thể được chỉ định bằng cú pháp
[:tốt nghiệp lớp XNUMX:], Nơi tốt nghiệp lớp XNUMX là một trong những lớp sau được định nghĩa trong POSIX
tiêu chuẩn:
hàng năm alpha ascii trống cntrl chữ số đồ thị thấp hơn in điểm không gian phía trên lời
x chữ số
Một lớp nhân vật khớp với bất kỳ nhân vật nào thuộc lớp đó. Các lời
lớp ký tự khớp với các chữ cái, chữ số và ký tự _.

Trong thời hạn [], An tương đương tốt nghiệp lớp XNUMX có thể được chỉ định bằng cú pháp
[=c=], khớp với tất cả các ký tự có cùng trọng số đối chiếu (như
được xác định bởi ngôn ngữ hiện tại) là ký tự c.

Trong thời hạn [], cú pháp [.biểu tượng.] khớp với biểu tượng đối chiếu biểu tượng.

Nếu extglob tùy chọn shell được bật bằng cách sử dụng xô đẩy nội trang, một số mẫu mở rộng
toán tử phù hợp được công nhận. Trong mô tả sau, một danh sách mẫu là một danh sách
của một hoặc nhiều mẫu được phân tách bằng dấu |. Các mẫu tổng hợp có thể được hình thành bằng cách sử dụng một hoặc
nhiều mẫu con sau:

?(danh sách mẫu)
Đối sánh không hoặc một lần xuất hiện của các mẫu đã cho
*(danh sách mẫu)
Đối sánh không hoặc nhiều lần xuất hiện của các mẫu đã cho
+(danh sách mẫu)
Đối sánh một hoặc nhiều lần xuất hiện của các mẫu đã cho
@(danh sách mẫu)
Khớp với một trong các mẫu đã cho
!(danh sách mẫu)
Đối sánh với bất kỳ thứ gì ngoại trừ một trong các mẫu đã cho

Trích dẫn Loại bỏ
Sau các lần mở rộng trước đó, tất cả các lần xuất hiện không được trích dẫn của các ký tự \, '"
mà không phải là kết quả của một trong các mở rộng ở trên sẽ bị xóa.

CHỈNH SỬA


Trước khi một lệnh được thực thi, đầu vào và đầu ra của nó có thể chuyển hướng sử dụng một đặc biệt
ký hiệu được giải thích bởi shell. Chuyển hướng cho phép xử lý tệp của lệnh
sao chép, mở, đóng, được thực hiện để tham chiếu đến các tệp khác nhau và có thể thay đổi các tệp
lệnh đọc từ và ghi vào. Chuyển hướng cũng có thể được sử dụng để sửa đổi các xử lý tệp trong
môi trường thực thi shell hiện tại. Các toán tử chuyển hướng sau có thể đứng trước
hoặc xuất hiện ở bất kỳ đâu trong đơn giản lệnh hoặc có thể làm theo một lệnh. Chuyển hướng là
được xử lý theo thứ tự xuất hiện, từ trái sang phải.

Thay vào đó, mỗi chuyển hướng có thể đứng trước một số bộ mô tả tệp
bởi một từ có dạng {tên sơn dầu}. Trong trường hợp này, đối với mỗi toán tử chuyển hướng ngoại trừ> & -
và <& -, shell sẽ cấp phát một bộ mô tả tệp lớn hơn hoặc bằng 10 và gán
nó để tên sơn dầu. Nếu> & - hoặc <& - đứng trước {tên sơn dầu}, giá trị của tên sơn dầu định nghĩa
trình mô tả tệp để đóng.

Trong các mô tả sau, nếu số bộ mô tả tệp bị bỏ qua và
ký tự của toán tử chuyển hướng là <, chuyển hướng đề cập đến đầu vào tiêu chuẩn
(bộ mô tả tệp 0). Nếu ký tự đầu tiên của toán tử chuyển hướng là >, Các
chuyển hướng đề cập đến đầu ra tiêu chuẩn (bộ mô tả tệp 1).

Từ theo sau toán tử chuyển hướng trong các mô tả sau, trừ khi
lưu ý khác, phải chịu sự mở rộng dấu ngoặc nhọn, sự mở rộng dấu ngã, tham số và biến
mở rộng, thay thế lệnh, mở rộng số học, loại bỏ dấu ngoặc kép, mở rộng tên đường dẫn,
và tách từ. Nếu nó mở rộng đến nhiều hơn một từ, bash báo lỗi.

Lưu ý rằng thứ tự chuyển hướng là đáng kể. Ví dụ, lệnh

ls > danh sách thư mục 2>&1

hướng cả đầu ra tiêu chuẩn và lỗi tiêu chuẩn vào tệp danh sách dirlist, trong khi lệnh

2 tuổi>&1 > danh sách dirlist

chỉ hướng đầu ra tiêu chuẩn vào tệp danh sách dirlist, bởi vì lỗi tiêu chuẩn là
được sao chép từ đầu ra tiêu chuẩn trước khi đầu ra tiêu chuẩn được chuyển hướng đến danh sách dirlist.

Cú đánh xử lý một số tên tệp đặc biệt khi chúng được sử dụng trong chuyển hướng, như được mô tả
trong bảng sau:

/ dev / fd /fd
If fd là một số nguyên hợp lệ, bộ mô tả tệp fd được nhân đôi.
/ dev / stdin
Bộ mô tả tệp 0 được sao chép.
/ dev / stdout
Bộ mô tả tệp 1 được sao chép.
/ dev / stderr
Bộ mô tả tệp 2 được sao chép.
/ dev / tcp /chủ nhà/cổng
If chủ nhà là một tên máy chủ hoặc địa chỉ Internet hợp lệ và cổng là một cổng số nguyên
số hoặc tên dịch vụ, bash cố gắng mở ổ cắm TCP tương ứng.
/ dev / udp /chủ nhà/cổng
If chủ nhà là một tên máy chủ hoặc địa chỉ Internet hợp lệ và cổng là một cổng số nguyên
số hoặc tên dịch vụ, bash cố gắng mở ổ cắm UDP tương ứng.

Không thể mở hoặc tạo tệp khiến chuyển hướng không thành công.

Chuyển hướng sử dụng bộ mô tả tệp lớn hơn 9 nên được sử dụng cẩn thận, vì chúng có thể
xung đột với các bộ mô tả tệp mà trình bao sử dụng bên trong.

Lưu ý rằng giám đốc điều hành lệnh nội trang có thể làm cho chuyển hướng có hiệu lực trong trình bao hiện tại.

Chuyển hướng Đầu vào
Việc chuyển hướng đầu vào khiến tệp có tên là kết quả của việc mở rộng lời được
được mở để đọc trên bộ mô tả tệp nhoặc đầu vào tiêu chuẩn (bộ mô tả tệp 0) nếu n is
không được chỉ định.

Định dạng chung để chuyển hướng đầu vào là:

[n]<lời

Chuyển hướng Đầu ra
Chuyển hướng đầu ra khiến tệp có tên là kết quả của việc mở rộng lời được
được mở để viết trên bộ mô tả tệp nhoặc đầu ra tiêu chuẩn (bộ mô tả tệp 1) nếu n
không được chỉ định. Nếu tệp không tồn tại, nó sẽ được tạo; nếu nó tồn tại thì nó là
bị cắt ngắn thành kích thước bằng không.

Định dạng chung để chuyển hướng đầu ra là:

[n]>lời

Nếu toán tử chuyển hướng là >, và người ăn bám tùy chọn cho định nội trang đã được
được bật, chuyển hướng sẽ không thành công nếu tệp có tên là kết quả của việc mở rộng
lời tồn tại và là một tệp thông thường. Nếu toán tử chuyển hướng là >|, hoặc chuyển hướng
nhà điều hành là >người ăn bám tùy chọn cho định lệnh nội trang không được kích hoạt,
chuyển hướng được cố gắng ngay cả khi tệp được đặt tên bởi lời tồn tại.

Kết thúc Chuyển hướng Đầu ra
Việc chuyển hướng đầu ra theo cách này khiến tệp có tên là kết quả của
mở rộng lời được mở để thêm vào trên bộ mô tả tệp nhoặc đầu ra tiêu chuẩn
(bộ mô tả tệp 1) nếu n không được chỉ định. Nếu tệp không tồn tại, nó sẽ được tạo.

Định dạng chung cho đầu ra bổ sung là:

[n]>>lời

Chuyển hướng Tiêu chuẩn Đầu ra Tiêu chuẩn lỗi
Cấu trúc này cho phép cả đầu ra tiêu chuẩn (bộ mô tả tệp 1) và lỗi tiêu chuẩn
đầu ra (bộ mô tả tệp 2) được chuyển hướng đến tệp có tên là phần mở rộng của
lời.

Có hai định dạng để chuyển hướng đầu ra tiêu chuẩn và lỗi tiêu chuẩn:

&>lời

>&lời

Trong hai hình thức, hình thức đầu tiên được ưu tiên hơn. Điều này tương đương về mặt ngữ nghĩa với

>lời 2>&1

Khi sử dụng biểu mẫu thứ hai, lời có thể không mở rộng thành một số hoặc -. Nếu có, khác
các toán tử chuyển hướng được áp dụng (xem Nhân bản Tập tin Mô tả dưới đây) để tương thích
lý do.

Kết thúc Tiêu chuẩn Đầu ra Tiêu chuẩn lỗi
Cấu trúc này cho phép cả đầu ra tiêu chuẩn (bộ mô tả tệp 1) và lỗi tiêu chuẩn
đầu ra (bộ mô tả tệp 2) được nối vào tệp có tên là phần mở rộng của lời.

Định dạng thêm đầu ra tiêu chuẩn và lỗi tiêu chuẩn là:

& >>lời

Điều này tương đương về mặt ngữ nghĩa với

>>lời 2>&1

(xem Nhân bản Tập tin Mô tả dưới đây).

Đây Tài liệu
Loại chuyển hướng này chỉ thị cho shell đọc đầu vào từ nguồn hiện tại cho đến khi
dòng chỉ chứa dấu phân cách (không có khoảng trống ở cuối) được nhìn thấy. Tất cả các dòng đã đọc
cho đến thời điểm đó được sử dụng làm đầu vào tiêu chuẩn cho một lệnh.

Định dạng của tài liệu ở đây là:

<<[-]lời
tài liệu ở đây
dấu phân cách

Không có tham số và mở rộng biến, thay thế lệnh, mở rộng số học hoặc
mở rộng tên đường dẫn được thực hiện trên lời. Nếu bất kỳ ký tự nào trong lời được trích dẫn,
dấu phân cách là kết quả của việc xóa báo giá trên lờivà các dòng trong tài liệu ở đây là
không được mở rộng. Nếu như lời không được trích dẫn, tất cả các dòng của tài liệu ở đây đều phải
mở rộng tham số, thay thế lệnh và mở rộng số học, ký tự
trình tự \ bị bỏ qua, và \ phải được sử dụng để trích dẫn các ký tự \, $`.

Nếu toán tử chuyển hướng là << -, sau đó tất cả các ký tự đầu tab bị loại bỏ khỏi
dòng đầu vào và dòng chứa dấu phân cách. Điều này cho phép các tài liệu tại đây trong shell
tập lệnh được thụt lề theo kiểu tự nhiên.

Đây Strings
Một biến thể của tài liệu ở đây, định dạng là:

<<lời

Sản phẩm lời trải qua mở rộng dấu ngoặc nhọn, mở rộng dấu ngã, mở rộng tham số và biến,
thay thế lệnh, mở rộng số học và loại bỏ dấu ngoặc kép. Mở rộng tên đường dẫn và
tách từ không được thực hiện. Kết quả được cung cấp dưới dạng một chuỗi đơn cho
lệnh trên đầu vào tiêu chuẩn của nó.

Nhân bản Tập tin Mô tả
Toán tử chuyển hướng

[n]<&lời

được sử dụng để sao chép các bộ mô tả tệp đầu vào. Nếu như lời mở rộng thành một hoặc nhiều chữ số,
bộ mô tả tệp được ký hiệu bằng n được tạo thành một bản sao của bộ mô tả tệp đó. Nếu các chữ số
in lời không chỉ định một bộ mô tả tệp mở cho đầu vào, một lỗi chuyển hướng xảy ra. Nếu như
lời đánh giá -, bộ mô tả tệp n đã đóng cửa. Nếu như n không được chỉ định, tiêu chuẩn
đầu vào (bộ mô tả tệp 0) được sử dụng.

Người điều hành

[n]>&lời

được sử dụng tương tự để trùng lặp các bộ mô tả tệp đầu ra. Nếu như n không được chỉ định,
đầu ra tiêu chuẩn (bộ mô tả tệp 1) được sử dụng. Nếu các chữ số trong lời không chỉ định một tập tin
mở bộ mô tả cho đầu ra, xảy ra lỗi chuyển hướng. Nếu như lời đánh giá -, tập tin
bộ mô tả n đã đóng cửa. Là một trường hợp đặc biệt, nếu n bị bỏ qua, và lời không mở rộng đến
một hoặc nhiều chữ số hoặc -, đầu ra tiêu chuẩn và lỗi tiêu chuẩn được chuyển hướng thành
đã được miêu tả ở trên.

Di chuyển Tập tin Mô tả
Toán tử chuyển hướng

[n]<&chữ số-

di chuyển bộ mô tả tệp chữ số đến bộ mô tả tệp nhoặc đầu vào tiêu chuẩn (tệp
bộ mô tả 0) nếu n không được chỉ định. chữ số bị đóng sau khi được sao chép thành n.

Tương tự, toán tử chuyển hướng

[n]>&chữ số-

di chuyển bộ mô tả tệp chữ số đến bộ mô tả tệp nhoặc đầu ra tiêu chuẩn (tệp
bộ mô tả 1) nếu n không được chỉ định.

Khai mạc Tập tin Mô tả cho Reading Writing
Toán tử chuyển hướng

[n]<>lời

gây ra tệp có tên là phần mở rộng của lời được mở để đọc và
viết trên bộ mô tả tệp nhoặc trên bộ mô tả tệp 0 nếu n không được chỉ định. Nếu tệp
không tồn tại, nó được tạo ra.

bí danh


bí danh cho phép một chuỗi được thay thế cho một từ khi nó được sử dụng làm từ đầu tiên của một
lệnh đơn giản. Trình bao duy trì một danh sách các bí danh có thể được đặt và không được đặt với
bí danhUnalias lệnh nội trang (xem SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG phía dưới). Từ đầu tiên của
mỗi lệnh đơn giản, nếu không được trích dẫn, sẽ được kiểm tra xem nó có bí danh hay không. Nếu vậy, từ đó
được thay thế bằng văn bản của bí danh. Các nhân vật /, $, `= và bất kỳ vỏ nào
siêu nhân vật hoặc các ký tự trích dẫn được liệt kê ở trên có thể không xuất hiện trong tên bí danh. Các
văn bản thay thế có thể chứa bất kỳ đầu vào shell hợp lệ nào, bao gồm siêu ký tự shell. Các
từ đầu tiên của văn bản thay thế được kiểm tra bí danh, nhưng một từ giống hệt với
bí danh đang được mở rộng không được mở rộng lần thứ hai. Điều này có nghĩa là một người có thể bí danh ls
đến ls -F, ví dụ, và bash không cố gắng mở rộng đệ quy văn bản thay thế.
Nếu ký tự cuối cùng của giá trị bí danh là trống, rồi đến từ lệnh tiếp theo sau
bí danh cũng được kiểm tra để mở rộng bí danh.

Bí danh được tạo và liệt kê với bí danh và xóa bằng lệnh Unalias
chỉ huy.

Không có cơ chế sử dụng đối số trong văn bản thay thế. Nếu đối số là
cần thiết, một hàm shell nên được sử dụng (xem CHỨC NĂNG dưới đây).

Bí danh không được mở rộng khi trình bao không tương tác, trừ khi mở rộng_bí danh
tùy chọn shell được thiết lập bằng cách sử dụng xô đẩy (xem mô tả của xô đẩy Dưới SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG
dưới đây).

Các quy tắc liên quan đến định nghĩa và sử dụng bí danh hơi khó hiểu. Cú đánh
luôn đọc ít nhất một dòng đầu vào hoàn chỉnh trước khi thực hiện bất kỳ lệnh nào trên
dòng đó. Bí danh được mở rộng khi một lệnh được đọc, không phải khi nó được thực thi.
Do đó, một định nghĩa bí danh xuất hiện trên cùng một dòng với một lệnh khác không có
hiệu lực cho đến khi dòng đầu vào tiếp theo được đọc. Các lệnh sau định nghĩa bí danh
trên dòng đó không bị ảnh hưởng bởi bí danh mới. Hành vi này cũng là một vấn đề khi
các chức năng được thực thi. Bí danh được mở rộng khi định nghĩa hàm được đọc, không phải khi
hàm được thực thi, bởi vì bản thân một định nghĩa hàm là một lệnh ghép. Như
kết quả là, các bí danh được xác định trong một hàm sẽ không khả dụng cho đến sau hàm đó
được thực thi. Để an toàn, hãy luôn đặt các định nghĩa bí danh trên một dòng riêng và không sử dụng
bí danh trong các lệnh ghép.

Đối với hầu hết mọi mục đích, bí danh được thay thế bởi các hàm shell.

CHỨC NĂNG


Một hàm shell, được định nghĩa như được mô tả ở trên dưới SHELL NGỮ PHÁP, lưu trữ một loạt
các lệnh để thực hiện sau này. Khi tên của một hàm shell được sử dụng như một
tên lệnh, danh sách các lệnh liên kết với tên hàm đó được thực hiện.
Các chức năng được thực thi trong ngữ cảnh của trình bao hiện tại; không có quy trình mới nào được tạo để
diễn giải chúng (đối chiếu điều này với việc thực thi một tập lệnh shell). Khi một chức năng là
được thực thi, các đối số của hàm trở thành các tham số vị trí trong quá trình
chấp hành. Tham số đặc biệt # được cập nhật để phản ánh sự thay đổi. Tham số đặc biệt 0
là không thay đổi. Phần tử đầu tiên của TÊN CHỨC NĂNG biến được đặt thành tên của
chức năng trong khi chức năng đang thực thi.

Tất cả các khía cạnh khác của môi trường thực thi trình bao giống hệt nhau giữa một hàm và
trình gọi của nó với những ngoại lệ sau: DEBUGTRỞ VỀ bẫy (xem mô tả của
bẫy nội trang dưới SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây) không được kế thừa trừ khi hàm có
đã được đưa ra theo dõi thuộc tính (xem mô tả của khai nội trang bên dưới) hoặc
-o dấu chức năng tùy chọn shell đã được kích hoạt với định nội trang (trong trường hợp đó tất cả
các chức năng kế thừa DEBUGTRỞ VỀ bẫy), và ERR bẫy không được kế thừa trừ khi
các -o việc vặt tùy chọn shell đã được kích hoạt.

Các biến cục bộ cho hàm có thể được khai báo với địa phương lệnh nội trang.
Thông thường, các biến và giá trị của chúng được chia sẻ giữa hàm và trình gọi của nó.

Sản phẩm VUI VẺ NHẤT biến, nếu được đặt thành giá trị số lớn hơn 0, xác định giá trị tối đa
cấp độ lồng chức năng. Các lệnh gọi hàm vượt quá giới hạn gây ra toàn bộ
lệnh hủy bỏ.

Nếu lệnh nội trang trở lại được thực thi trong một hàm, hàm hoàn thành và
tiếp tục thực thi với lệnh tiếp theo sau lệnh gọi hàm. Bất kỳ lệnh nào được liên kết
với TRỞ VỀ bẫy được thực hiện trước khi tiếp tục thực thi. Khi một chức năng hoàn thành,
giá trị của các tham số vị trí và tham số đặc biệt # được khôi phục về các giá trị
chúng đã có trước khi thực hiện chức năng.

Tên và định nghĩa hàm có thể được liệt kê với -f tùy chọn cho khai or bộ sắp chữ
lệnh nội trang. Các -F tùy chọn để khai or bộ sắp chữ sẽ chỉ liệt kê các tên chức năng
(và tùy chọn tệp nguồn và số dòng, nếu người tống tiền tùy chọn shell được kích hoạt).
Các hàm có thể được xuất để các bảng con tự động xác định chúng với -f
tùy chọn cho xuất khẩu được xây dựng trong. Định nghĩa hàm có thể bị xóa bằng cách sử dụng -f tùy chọn để
các không đặt được xây dựng trong. Lưu ý rằng các hàm shell và biến có cùng tên có thể dẫn đến
trong nhiều mục nhập có tên giống hệt nhau trong môi trường được chuyển cho phần tử con của trình bao.
Cần cẩn thận trong trường hợp điều này có thể gây ra sự cố.

Các hàm có thể là đệ quy. Các VUI VẺ NHẤT biến có thể được sử dụng để giới hạn độ sâu của
ngăn xếp cuộc gọi hàm và hạn chế số lần gọi hàm. Theo mặc định, không có giới hạn
được áp dụng cho số lượng cuộc gọi đệ quy.

MÔN SỐ HỌC ĐÁNH GIÁ


Shell cho phép các biểu thức số học được đánh giá, trong những trường hợp nhất định (xem
các cho phépkhai lệnh nội trang và toán học Sự bành trướng). Đánh giá được thực hiện trong
các số nguyên có chiều rộng cố định không có kiểm tra tràn, mặc dù phép chia cho 0 bị mắc kẹt và
bị gắn cờ là một lỗi. Các toán tử và mức độ ưu tiên, tính liên kết và giá trị của chúng là
giống như trong ngôn ngữ C. Danh sách toán tử sau đây được nhóm thành các cấp độ
toán tử ưu tiên bằng nhau. Các cấp độ được liệt kê theo thứ tự ưu tiên giảm dần.

id++ id--
biến sau tăng và sau giảm
++id --id
tăng trước biến đổi và giảm trước
- + trừ một bậc và cộng
! ~ phủ định logic và theo chiều dọc bit
** lũy thừa
* / % nhân, chia, dư
+ - cộng, trừ
<< >> trái và phải dịch chuyển theo chiều kim loại
<= >= < >
sự so sánh
== != bình đẳng và bất bình đẳng
& bitwise VÀ
^ bitwise độc ​​quyền HOẶC
| bitwise HOẶC
&& logic AND
|| logic HOẶC
thể hiện?thể hiện:thể hiện
điều hành có điều kiện
= *= /= %= += -= << = >> = &= ^= |=
chuyển nhượng
expr1 , expr2
dấu phẩy

Các biến Shell được phép làm toán hạng; mở rộng tham số được thực hiện trước
biểu thức được đánh giá. Trong một biểu thức, các biến shell cũng có thể được tham chiếu bởi
tên mà không sử dụng cú pháp mở rộng tham số. Một biến shell không có giá trị hoặc không được đặt
đánh giá thành 0 khi được tham chiếu bằng tên mà không sử dụng cú pháp mở rộng tham số. Các
giá trị của một biến được đánh giá là một biểu thức số học khi nó được tham chiếu, hoặc
khi một biến đã được cung cấp số nguyên thuộc tính sử dụng khai -i được chỉ định một
giá trị. Giá trị null cho kết quả là 0. Một biến shell không cần phải có số nguyên thuộc tính
được bật để được sử dụng trong một biểu thức.

Hằng số có số 0 đứng đầu được hiểu là số bát phân. 0x hoặc 0X đứng đầu biểu thị
hệ thập lục phân. Nếu không, các số có dạng [căn cứ#] n, trong đó tùy chọn cơ sở là một
số thập phân từ 2 đến 64 đại diện cho cơ số số học, và n là một số trong
căn cứ đó. Nếu như căn cứ# bị bỏ qua, sau đó cơ số 10 được sử dụng. Khi chỉ định n, các chữ số
lớn hơn <9 được biểu thị bằng các chữ cái thường, chữ hoa, @ và _,
theo thứ tự đó. Nếu như cơ sở nhỏ hơn hoặc bằng 36, chữ thường và chữ hoa có thể
được sử dụng thay thế cho nhau để biểu thị các số từ 10 đến 35.

Các toán tử được đánh giá theo thứ tự ưu tiên. Biểu thức con trong ngoặc đơn là
được đánh giá đầu tiên và có thể ghi đè các quy tắc ưu tiên ở trên.

ĐIỀU KIỆN BIỂU THỨC


Biểu thức điều kiện được sử dụng bởi [[ lệnh ghép và thử nghiệm[ được xây dựng trong
các lệnh để kiểm tra các thuộc tính của tệp và thực hiện so sánh chuỗi và số học.
Biểu thức được hình thành từ các số nguyên tố một bậc hoặc nhị phân sau đây. Nếu có hồ sơ đối số
cho một trong những cuộc bầu cử sơ bộ có dạng / dev / fd / n, sau đó trình mô tả tệp n được kiểm tra. Nếu như
các hồ sơ đối số cho một trong các cuộc bầu cử sơ bộ là một trong những / dev / stdin, / dev / stdout, hoặc là
/ dev / stderr, bộ mô tả tệp 0, 1 hoặc 2, tương ứng, được chọn.

Trừ khi được chỉ định khác, các truy vấn chính hoạt động trên tệp sẽ đi theo các liên kết tượng trưng và
hoạt động trên mục tiêu của liên kết, thay vì chính liên kết.

Khi sử dụng với [[, Các <> toán tử sắp xếp theo từ điển bằng cách sử dụng ngôn ngữ hiện tại.
Sản phẩm thử nghiệm sắp xếp lệnh bằng cách sử dụng lệnh ASCII.

-a hồ sơ
Đúng nếu hồ sơ tồn tại.
-b hồ sơ
Đúng nếu hồ sơ tồn tại và là một tập tin đặc biệt của khối.
-c hồ sơ
Đúng nếu hồ sơ tồn tại và là một tệp ký tự đặc biệt.
-d hồ sơ
Đúng nếu hồ sơ tồn tại và là một thư mục.
-e hồ sơ
Đúng nếu hồ sơ tồn tại.
-f hồ sơ
Đúng nếu hồ sơ tồn tại và là một tệp thông thường.
-g hồ sơ
Đúng nếu hồ sơ tồn tại và là set-group-id.
-h hồ sơ
Đúng nếu hồ sơ tồn tại và là một liên kết tượng trưng.
-k hồ sơ
Đúng nếu hồ sơ tồn tại và bit `` dính '' của nó được đặt.
-p hồ sơ
Đúng nếu hồ sơ tồn tại và là một đường ống được đặt tên (FIFO).
-r hồ sơ
Đúng nếu hồ sơ tồn tại và có thể đọc được.
-s hồ sơ
Đúng nếu hồ sơ tồn tại và có kích thước lớn hơn XNUMX.
-t fd Đúng nếu bộ mô tả tệp fd đang mở và đề cập đến một thiết bị đầu cuối.
-u hồ sơ
Đúng nếu hồ sơ tồn tại và bit set-user-id của nó được đặt.
-w hồ sơ
Đúng nếu hồ sơ tồn tại và có thể ghi.
-x hồ sơ
Đúng nếu hồ sơ tồn tại và có thể thực thi được.
-G hồ sơ
Đúng nếu hồ sơ tồn tại và được sở hữu bởi id nhóm có hiệu lực.
-L hồ sơ
Đúng nếu hồ sơ tồn tại và là một liên kết tượng trưng.
-N hồ sơ
Đúng nếu hồ sơ tồn tại và đã được sửa đổi kể từ lần đọc cuối cùng.
-O hồ sơ
Đúng nếu hồ sơ tồn tại và được sở hữu bởi id người dùng hiệu quả.
-S hồ sơ
Đúng nếu hồ sơ tồn tại và là một ổ cắm.
tệp1 -nếu tệp2
Đúng nếu tệp1tệp2 tham chiếu đến cùng một thiết bị và số inode.
tệp1 -nt tệp2
Đúng nếu tệp1 mới hơn (theo ngày sửa đổi) hơn tệp2, hoặc nếu tệp1
tồn tại và tệp2 không làm.
tệp1 -ot tệp2
Đúng nếu tệp1 nó cũ hơn tệp2, hoặc nếu tệp2 tồn tại và tệp1 không làm.
-o chọn tên
Đúng nếu tùy chọn shell chọn tên được kích hoạt. Xem danh sách các tùy chọn trong
mô tả của -o tùy chọn cho định nội trang bên dưới.
-v tên sơn dầu
Đúng nếu biến shell tên sơn dầu được đặt (đã được gán một giá trị).
-R tên sơn dầu
Đúng nếu biến shell tên sơn dầu được đặt và là một tham chiếu tên.
-z chuỗi
Đúng nếu độ dài của chuỗi là số không.
chuỗi
-n chuỗi
Đúng nếu độ dài của chuỗi là khác XNUMX.

chuỗi1 == chuỗi2
chuỗi1 = chuỗi2
Đúng nếu các chuỗi bằng nhau. = nên được sử dụng với thử nghiệm lệnh cho POSIX
sự phù hợp. Khi được sử dụng với [[ lệnh này thực hiện so khớp mẫu như
miêu tả trên (Hợp chất Lệnh).

chuỗi1 != chuỗi2
Đúng nếu các chuỗi không bằng nhau.

chuỗi1 < chuỗi2
Đúng nếu chuỗi1 sắp xếp trước chuỗi2 về mặt từ vựng.

chuỗi1 > chuỗi2
Đúng nếu chuỗi1 sắp xếp sau chuỗi2 về mặt từ vựng.

arg1 OP arg2
OP là một trong những -eq, - Là, -lt, -NS, -gt, hoặc là -ge. Các toán tử nhị phân số học này
trả về true nếu arg1 bằng, không bằng, nhỏ hơn, nhỏ hơn hoặc bằng,
lớn hơn, hoặc lớn hơn hoặc bằng arg2, Tương ứng. arg1arg2 có lẽ
số nguyên dương hoặc âm.

ĐƠN GIẢN COMMAND SỰ BÀNH TRƯỚNG


Khi một lệnh đơn giản được thực thi, trình bao thực hiện các mở rộng sau,
nhiệm vụ và chuyển hướng, từ trái sang phải.

1. Các từ mà trình phân tích cú pháp đã đánh dấu là các phép gán biến (những từ đứng trước
tên lệnh) và chuyển hướng được lưu để xử lý sau.

2. Các từ không phải là phép gán biến hoặc chuyển hướng được mở rộng. Nếu có
các từ vẫn còn sau khi mở rộng, từ đầu tiên được lấy làm tên của lệnh
và các từ còn lại là các đối số.

3. Chuyển hướng được thực hiện như mô tả ở trên dưới CHỈNH SỬA.

4. Văn bản sau = trong mỗi phép gán biến trải qua mở rộng dấu ngã,
mở rộng tham số, thay thế lệnh, mở rộng số học và loại bỏ dấu ngoặc kép
trước khi được gán cho biến.

Nếu không có kết quả tên lệnh, các phép gán biến ảnh hưởng đến môi trường shell hiện tại.
Nếu không, các biến được thêm vào môi trường của lệnh được thực thi và không
ảnh hưởng đến môi trường shell hiện tại. Nếu bất kỳ bài tập nào cố gắng chỉ định một
giá trị cho một biến chỉ đọc, lỗi xảy ra và lệnh thoát với giá trị khác XNUMX
trạng thái.

Nếu không có kết quả tên lệnh, chuyển hướng được thực hiện, nhưng không ảnh hưởng đến hiện tại
môi trường vỏ. Lỗi chuyển hướng khiến lệnh thoát với trạng thái khác không.

Nếu vẫn còn tên lệnh sau khi mở rộng, quá trình thực thi sẽ tiến hành như mô tả bên dưới.
Nếu không, lệnh sẽ thoát. Nếu một trong các bản mở rộng chứa lệnh thay thế,
trạng thái thoát của lệnh là trạng thái thoát của lệnh thay thế cuối cùng
đã thực hiện. Nếu không có lệnh thay thế, lệnh sẽ thoát với trạng thái
số không.

COMMAND CHẤP HÀNH


Sau khi một lệnh đã được chia thành các từ, nếu nó dẫn đến một lệnh đơn giản và
danh sách các đối số tùy chọn, các hành động sau được thực hiện.

Nếu tên lệnh không chứa dấu gạch chéo, trình bao sẽ cố gắng xác định vị trí của nó. Nếu tồn tại
một hàm shell bằng tên đó, hàm đó được gọi như được mô tả ở trên trong CHỨC NĂNG.
Nếu tên không khớp với một hàm, shell sẽ tìm kiếm nó trong danh sách shell
nội trang. Nếu tìm thấy một kết quả phù hợp, nội trang đó sẽ được gọi.

Nếu tên không phải là một hàm shell cũng không phải là một nội trang và không chứa dấu gạch chéo, bash
tìm kiếm từng phần tử của PATH cho một thư mục chứa một tệp thực thi bằng cách đó
tên. Cú đánh sử dụng bảng băm để ghi nhớ tên đường dẫn đầy đủ của các tệp thực thi (xem băm
Dưới SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG phía dưới). Tìm kiếm đầy đủ các thư mục trong PATH is
chỉ được thực hiện nếu lệnh không được tìm thấy trong bảng băm. Nếu tìm kiếm là
không thành công, trình bao tìm kiếm một hàm trình bao đã xác định có tên
lệnh_not_found_handle. Nếu chức năng đó tồn tại, nó được gọi với chức năng ban đầu
lệnh và các đối số của lệnh ban đầu làm đối số của nó và lối ra của hàm
trạng thái trở thành trạng thái thoát của trình bao. Nếu chức năng đó không được xác định, trình bao
in thông báo lỗi và trả về trạng thái thoát 127.

Nếu tìm kiếm thành công hoặc nếu tên lệnh chứa một hoặc nhiều dấu gạch chéo,
shell thực thi chương trình được đặt tên trong một môi trường thực thi riêng biệt. Đối số 0 được đặt
đối với tên đã cho và các đối số còn lại của lệnh được đặt thành đối số
đưa ra, nếu có.

Nếu quá trình thực thi này không thành công vì tệp không ở định dạng thực thi và tệp không
một thư mục, nó được giả định là một shell kịch bản, một tệp chứa các lệnh shell. MỘT
vỏ con được tạo ra để thực thi nó. Vỏ con này tự khởi động lại, do đó, hiệu ứng
giống như thể một trình bao mới đã được gọi để xử lý tập lệnh, ngoại trừ
vị trí của các lệnh được cha mẹ ghi nhớ (xem băm dưới dưới SHELL ĐƯỢC XÂY DỰNG TRONG
HÀNG) được giữ lại bởi đứa trẻ.

Nếu chương trình là một tệp bắt đầu bằng #!, phần còn lại của dòng đầu tiên chỉ định một
thông dịch viên cho chương trình. Shell thực thi trình thông dịch được chỉ định khi vận hành
hệ thống không tự xử lý định dạng thực thi này. Các đối số cho
trình thông dịch bao gồm một đối số tùy chọn duy nhất theo sau tên trình thông dịch trên
dòng đầu tiên của chương trình, tiếp theo là tên của chương trình, tiếp theo là lệnh
các đối số, nếu có.

COMMAND CHẤP HÀNH MÔI TRƯỜNG


Vỏ có một thực hiện môi trường, bao gồm những điều sau:

· Mở các tệp được kế thừa bởi shell khi gọi, như được sửa đổi bởi chuyển hướng
cung cấp cho giám đốc điều hành được xây dựng trong

· Thư mục làm việc hiện tại được đặt bởi cd, pushd, hoặc là popd, hoặc được thừa kế bởi
shell lúc gọi

· Mặt nạ chế độ tạo tệp như được thiết lập bởi cái ô hoặc được thừa kế từ cha mẹ của shell

· Bẫy hiện tại do bẫy

· Các tham số shell được thiết lập bằng cách gán biến hoặc với định hoặc thừa kế từ
cha mẹ của shell trong môi trường

· Các hàm shell được xác định trong quá trình thực thi hoặc được kế thừa từ cha của shell trong
môi trường

· Các tùy chọn được kích hoạt khi gọi (theo mặc định hoặc với các đối số dòng lệnh) hoặc
by định

· Các tùy chọn được kích hoạt bởi xô đẩy

· Bí danh shell được xác định bằng bí danh

· Các ID quy trình khác nhau, bao gồm cả ID của các công việc nền, giá trị của $$, và
giá trị của PPID

Khi một lệnh đơn giản khác với hàm nội trang hoặc trình bao được thực thi, nó sẽ
được gọi trong một môi trường thực thi riêng biệt bao gồm những điều sau đây. Trừ phi
nếu không, các giá trị được kế thừa từ shell.

· Các tệp đang mở của trình bao, cộng với bất kỳ sửa đổi và bổ sung nào được chỉ định bởi
chuyển hướng đến lệnh

· Thư mục làm việc hiện tại

· Mặt nạ chế độ tạo tệp

· Các biến shell và các hàm được đánh dấu để xuất, cùng với các biến được xuất cho
lệnh, được truyền trong môi trường

· Bẫy bị bắt bởi trình bao được đặt lại về các giá trị kế thừa từ trình bao
cha mẹ và các bẫy bị trình bao bỏ qua sẽ bị bỏ qua

Một lệnh được gọi trong môi trường riêng biệt này không thể ảnh hưởng đến quá trình thực thi của shell
môi trường.

Thay thế lệnh, các lệnh được nhóm với dấu ngoặc đơn và các lệnh không đồng bộ là
được gọi trong môi trường shell con là bản sao của môi trường shell, ngoại trừ
rằng các bẫy bị trình bao bắt được đặt lại về các giá trị mà trình bao kế thừa từ
cha mẹ khi gọi. Các lệnh nội trang được gọi như một phần của đường ống cũng
được thực thi trong môi trường vỏ con. Các thay đổi được thực hiện đối với môi trường vỏ con không thể
ảnh hưởng đến môi trường thực thi của shell.

Các ô con được tạo ra để thực hiện các lệnh thay thế kế thừa giá trị của -e tùy chọn từ
vỏ mẹ. Khi không ở posix chế độ, bash xóa -e tùy chọn trong các trang con như vậy.

Nếu một lệnh được theo sau bởi một & và kiểm soát công việc không hoạt động, đầu vào tiêu chuẩn mặc định
đối với lệnh là tệp trống / dev / null. Nếu không, lệnh được gọi kế thừa
các bộ mô tả tệp của trình bao gọi như được sửa đổi bởi chuyển hướng.

MÔI TRƯỜNG


Khi một chương trình được gọi, nó được cung cấp một mảng các chuỗi được gọi là môi trường. Đây là
một danh sách về tên-giá trị các cặp, có dạng tên=giá trị.

Shell cung cấp một số cách để thao tác với môi trường. Khi gọi, shell
quét môi trường của chính nó và tạo một tham số cho mỗi tên được tìm thấy, tự động
đánh dấu nó cho xuất khẩu tới các quy trình con. Các lệnh được thực thi kế thừa môi trường. Các
xuất khẩukhai -x lệnh cho phép các tham số và chức năng được thêm vào và xóa
từ môi trường. Nếu giá trị của một tham số trong môi trường được sửa đổi,
giá trị trở thành một phần của môi trường, thay thế giá trị cũ. Môi trường được thừa hưởng bởi
bất kỳ lệnh nào được thực thi bao gồm môi trường ban đầu của shell, có giá trị của nó có thể là
được sửa đổi trong vỏ, ít hơn bất kỳ cặp nào bị loại bỏ bởi không đặt lệnh, cộng với bất kỳ bổ sung nào qua
các xuất khẩukhai -x lệnh.

Môi trường cho bất kỳ đơn giản lệnh hoặc chức năng có thể được tăng cường tạm thời bởi
tiền tố nó bằng các phép gán tham số, như được mô tả ở trên trong THÔNG SỐ. Kia là
lệnh gán chỉ ảnh hưởng đến môi trường mà lệnh đó nhìn thấy.

Nếu -k tùy chọn được thiết lập (xem định lệnh nội trang bên dưới), sau đó tất cả các tham số
các phép gán được đặt trong môi trường cho một lệnh, không chỉ những lệnh đứng trước
tên lệnh.

Thời Gian bash gọi một lệnh bên ngoài, biến _ được đặt thành tên tệp đầy đủ của
lệnh và được chuyển tới lệnh đó trong môi trường của nó.

EXIT TÌNH TRẠNG


Trạng thái thoát của một lệnh được thực thi là giá trị được trả về bởi người phục vụ cuộc gọi hệ thống hoặc
chức năng tương đương. Tuy nhiên, các trạng thái thoát nằm trong khoảng từ 0 đến 255, như được giải thích bên dưới,
đặc biệt shell có thể sử dụng các giá trị trên 125. Trạng thái thoát khỏi nội trang vỏ và
các lệnh ghép cũng bị giới hạn trong phạm vi này. Trong những trường hợp nhất định, vỏ
sẽ sử dụng các giá trị đặc biệt để chỉ ra các chế độ hỏng hóc cụ thể.

Đối với mục đích của trình bao, một lệnh thoát với trạng thái không thoát đã thành công. Một
trạng thái thoát của số không cho biết thành công. Trạng thái thoát khác XNUMX cho biết thất bại. Khi một
lệnh kết thúc khi có tín hiệu nguy hiểm N, bash sử dụng giá trị 128+N như trạng thái thoát.

Nếu không tìm thấy lệnh, tiến trình con được tạo để thực thi nó sẽ trả về trạng thái
127. Nếu một lệnh được tìm thấy nhưng không thể thực thi được, trạng thái trả về là 126.

Nếu một lệnh không thành công do lỗi trong quá trình mở rộng hoặc chuyển hướng, trạng thái thoát là
lớn hơn không.

Các lệnh nội trang hệ vỏ trả về trạng thái 0 (đúng) nếu thành công và khác XNUMX (sai) nếu
một lỗi xảy ra trong khi chúng thực thi. Tất cả nội trang trả về trạng thái thoát là 2 để chỉ ra
cách sử dụng không chính xác.

Cú đánh chính nó trả về trạng thái thoát của lệnh cuối cùng được thực thi, trừ khi lỗi cú pháp
xảy ra, trong trường hợp đó nó thoát ra với giá trị khác XNUMX. Xem thêm ra lệnh nội trang
phía dưới.

TÍN HIỆU


Thời Gian bash tương tác, trong trường hợp không có bất kỳ bẫy nào, nó sẽ bỏ qua HẠN MỤC TIÊU (vậy nên giết 0
không giết một trình bao tương tác), và KÝ HIỆU bị bắt và xử lý (để chờ đợi
nội trang là gián đoạn). Trong tất cả trường hợp, bash bỏ qua THEO DÕI. Nếu kiểm soát công việc là
hiệu ứng, bash bỏ qua ĐĂNG NHẬP, ĐĂNG KÝSIGTSTP.

Các lệnh không nội trang chạy bởi bash đặt bộ xử lý tín hiệu thành các giá trị được kế thừa bởi
shell từ cha mẹ của nó. Khi điều khiển công việc không có hiệu lực, các lệnh không đồng bộ sẽ bỏ qua
KÝ HIỆUTHEO DÕI ngoài các trình xử lý kế thừa này. Các lệnh chạy do
thay thế lệnh bỏ qua các tín hiệu điều khiển công việc do bàn phím tạo ra ĐĂNG NHẬP, ĐĂNG KÝ,
SIGTSTP.

Trình bao sẽ thoát theo mặc định khi nhận được ĐĂNG KÍ. Trước khi thoát, một trình bao tương tác
gửi lại ĐĂNG KÍ cho tất cả các công việc, đang chạy hay đã dừng. Các công việc bị dừng được gửi đi NEXTCONT đến
đảm bảo rằng họ nhận được ĐĂNG KÍ. Để ngăn trình bao gửi tín hiệu đến
công việc cụ thể, nó nên được xóa khỏi bảng công việc với không nhận nội trang (xem
SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây) hoặc được đánh dấu để không nhận ĐĂNG KÍ sử dụng không nhận -h.

Nếu huponexit tùy chọn shell đã được thiết lập với xô đẩy, bash gửi một ĐĂNG KÍ cho tất cả các công việc
khi một trình bao đăng nhập tương tác thoát ra.

If bash đang đợi lệnh hoàn thành và nhận được tín hiệu mà một cái bẫy có
đã được đặt, bẫy sẽ không được thực hiện cho đến khi lệnh hoàn thành. Khi nào bash đang đợi
cho một lệnh không đồng bộ thông qua chờ đợi nội trang, việc tiếp nhận một tín hiệu mà
bẫy đã được đặt sẽ gây ra chờ đợi nội trang để trở lại ngay lập tức với trạng thái thoát
lớn hơn 128, ngay sau đó bẫy được thực hiện.

VIỆC LÀM KIỂM SOÁT


Việc làm điều khiển đề cập đến khả năng dừng có chọn lọc (Đình chỉ) việc thực hiện các quy trình
và tiếp tục (tiếp tục) việc thực hiện của họ vào thời điểm sau đó. Người dùng thường sử dụng điều này
cơ sở thông qua một giao diện tương tác được cung cấp chung bởi hạt nhân của hệ điều hành
trình điều khiển thiết bị đầu cuối và bash.

Shell liên kết a việc làm với mỗi đường ống. Nó giữ một bảng hiện đang thực thi
công việc, có thể được liệt kê với việc làm chỉ huy. Khi nào bash bắt đầu một công việc không đồng bộ
(bên trong lý lịch), nó in ra một dòng trông giống như:

[1] 25647

chỉ ra rằng công việc này là công việc số 1 và rằng ID quy trình của quy trình cuối cùng trong
đường dẫn liên quan đến công việc này là 25647. Tất cả các quy trình trong một đường dẫn duy nhất
là những thành viên cùng công việc. Cú đánh sử dụng việc làm trừu tượng làm cơ sở cho việc kiểm soát công việc.

Để tạo điều kiện thuận lợi cho việc triển khai giao diện người dùng để kiểm soát công việc, điều hành
hệ thống duy trì khái niệm về một hiện hành thiết bị đầu cuối quá trình nhóm ID. Thành viên của cái này
nhóm quy trình (các quy trình có ID nhóm quy trình bằng với quy trình đầu cuối hiện tại
ID nhóm) nhận các tín hiệu do bàn phím tạo ra, chẳng hạn như KÝ HIỆU. Các quy trình này được cho là
ở trong tiền cảnh. Tiểu sử quy trình là những quy trình có ID nhóm quy trình khác với
thiết bị đầu cuối của; các quá trình này miễn nhiễm với các tín hiệu do bàn phím tạo ra. Chỉ tiền cảnh
các quy trình được phép đọc từ hoặc, nếu người dùng chỉ định như vậy với stty tostop, hãy ghi vào
thiết bị đầu cuối. Các quy trình nền cố gắng đọc từ đó (ghi vào khi stty dừng lại
đang có hiệu lực) thiết bị đầu cuối được gửi một ĐĂNG NHẬP (SIGTTOU) tín hiệu bằng thiết bị đầu cuối của hạt nhân
trình điều khiển, trừ khi bị bắt, sẽ tạm dừng quá trình.

Nếu hệ điều hành trên đó bash đang chạy hỗ trợ kiểm soát công việc, bash chứa
cơ sở vật chất để sử dụng nó. Gõ Đình chỉ nhân vật (thường là ^Z, Control-Z) trong khi a
quá trình đang chạy khiến quá trình đó bị dừng và trả lại quyền kiểm soát cho bash. Đánh máy
các bị trì hoãn Đình chỉ nhân vật (thường là ^Y, Control-Y) khiến quá trình bị dừng
khi nó cố gắng đọc đầu vào từ thiết bị đầu cuối và điều khiển được trả về bash. Các
người dùng sau đó có thể thao tác trạng thái của công việc này, bằng cách sử dụng bg lệnh để tiếp tục nó trong
nền, fg lệnh để tiếp tục nó ở phía trước, hoặc giết lệnh giết
nó Một ^Z có hiệu lực ngay lập tức và có thêm tác dụng phụ là gây ra
đầu ra và lỗi đánh máy sẽ bị loại bỏ.

Có một số cách để tham chiếu đến một công việc trong shell. Nhân vật % giới thiệu một
đặc tả công việc (đặc tả công việc). Số công việc n có thể được gọi là %n. Một công việc cũng có thể là
đề cập đến việc sử dụng một tiền tố của tên được sử dụng để bắt đầu nó hoặc sử dụng một chuỗi con xuất hiện
trong dòng lệnh của nó. Ví dụ, % ce đề cập đến một dừng lại ce Công việc. Nếu một tiền tố phù hợp
nhiều hơn một công việc, bash báo lỗi. Sử dụng %? ce, mặt khác, đề cập đến bất kỳ
công việc chứa chuỗi ce trong dòng lệnh của nó. Nếu chuỗi con khớp với nhiều hơn một
việc làm, bash báo lỗi. Các ký hiệu %%%+ đề cập đến khái niệm của shell về
hiện hành việc làm, là công việc cuối cùng đã dừng lại khi nó ở phía trước hoặc bắt đầu trong
bối cảnh. Các trước việc làm có thể được tham chiếu bằng cách sử dụng %-. Nếu chỉ có một
việc làm, %+%- cả hai đều có thể được sử dụng để chỉ công việc đó. Trong đầu ra liên quan đến công việc (ví dụ:
đầu ra của việc làm lệnh), công việc hiện tại luôn được gắn cờ +, và
công việc trước đây với một -. Một% duy nhất (không có đặc điểm công việc đi kèm) cũng đề cập đến
công việc hiện tại.

Đơn giản chỉ cần đặt tên một công việc có thể được sử dụng để đưa nó vào nền tảng: %1 là một từ đồng nghĩa với `` fg
% 1 '', đưa công việc 1 từ nền vào nền trước. Tương tự, ``% 1 & '' sơ yếu lý lịch
công việc 1 trong nền, tương đương với `` bg % 1 ''.

Shell học ngay lập tức bất cứ khi nào một công việc thay đổi trạng thái. Thông thường, bash đợi cho đến khi nó
sắp in lời nhắc trước khi báo cáo những thay đổi trong trạng thái của công việc để không
ngắt bất kỳ đầu ra nào khác. Nếu -b tùy chọn cho định lệnh nội trang được bật, bash
báo cáo những thay đổi như vậy ngay lập tức. Bất kỳ bẫy nào trên SIGCHLD được thực thi cho mỗi đứa trẻ
lối thoát hiểm.

Nếu cố gắng thoát ra bash được thực hiện trong khi công việc bị dừng (hoặc, nếu công việc kiểm tra shell
tùy chọn đã được kích hoạt bằng cách sử dụng xô đẩy nội trang, đang chạy), shell in cảnh báo
tin nhắn và nếu công việc kiểm tra tùy chọn được bật, liệt kê các công việc và trạng thái của chúng. Các
việc làm lệnh sau đó có thể được sử dụng để kiểm tra trạng thái của chúng. Nếu nỗ lực thoát lần thứ hai là
được thực hiện mà không có lệnh can thiệp, trình bao không in cảnh báo khác và bất kỳ
các công việc đã ngừng được chấm dứt.

KHUYẾN MÃI


Khi thực thi tương tác, bash hiển thị lời nhắc chính PS1 khi nó sẵn sàng
đọc lệnh và lời nhắc phụ PS2 khi nó cần thêm đầu vào để hoàn thành
chỉ huy. Cú đánh cho phép các chuỗi lời nhắc này được tùy chỉnh bằng cách chèn một số
các ký tự đặc biệt thoát dấu gạch chéo ngược được giải mã như sau:
\a một ký tự chuông ASCII (07)
\d ngày ở định dạng "Ngày trong tuần, ngày trong tháng" (ví dụ: "Thứ ba ngày 26 tháng XNUMX")
\ D {định dạng}
các định dạng được chuyển cho thời gian căng thẳng(3) và kết quả được chèn vào
chuỗi nhắc nhở; trống rỗng định dạng kết quả trong một thời gian cụ thể theo ngôn ngữ
sự đại diện. Niềng răng là bắt buộc
\e một ký tự thoát ASCII (033)
\h tên máy chủ cho đến đầu tiên `. '
\H tên máy chủ
\j số lượng công việc hiện được quản lý bởi shell
\l tên cơ sở của tên thiết bị đầu cuối của shell
\n dòng mới
\r vận chuyển trở lại
\s tên của shell, tên cơ sở của $0 (phần sau trận chung kết
gạch chéo)
\t thời gian hiện tại ở định dạng HH: MM: SS 24 giờ
\T thời gian hiện tại ở định dạng HH: MM: SS 12 giờ
\@ thời gian hiện tại ở định dạng 12 giờ sáng / chiều
\A thời gian hiện tại ở định dạng HH: MM 24 giờ
\u tên người dùng của người dùng hiện tại
\v phiên bản của bash (ví dụ: 2.00)
\V việc phát hành bash, phiên bản + cấp bản vá (ví dụ: 2.00.0)
\w thư mục làm việc hiện tại, với $ HOME được viết tắt bằng dấu ngã (sử dụng
giá trị của PROMPT_DIRTRIM Biến đổi)
\W tên cơ sở của thư mục làm việc hiện tại, với $ HOME được viết tắt bằng một
dấu ngã
\! số lịch sử của lệnh này
\# số lệnh của lệnh này
\$ nếu UID hiệu dụng là 0, #, nếu không thì a $
\nnn ký tự tương ứng với số bát phân nnn
\\ dấu gạch chéo ngược
\[ bắt đầu một chuỗi các ký tự không in, có thể được sử dụng để nhúng
trình tự điều khiển thiết bị đầu cuối vào dấu nhắc
\] kết thúc một chuỗi các ký tự không in được

Số lệnh và số lịch sử thường khác nhau: số lịch sử của một
lệnh là vị trí của nó trong danh sách lịch sử, có thể bao gồm các lệnh được khôi phục từ
tệp lịch sử (xem LỊCH SỬ dưới đây), trong khi số lệnh là vị trí trong chuỗi
lệnh được thực thi trong phiên trình bao hiện tại. Sau khi chuỗi được giải mã, nó là
được mở rộng thông qua mở rộng tham số, thay thế lệnh, mở rộng số học và trích dẫn
loại bỏ, tùy thuộc vào giá trị của lời nhắc nhở tùy chọn shell (xem mô tả của
xô đẩy chỉ huy dưới SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây).

ĐỌC TIẾP


Đây là thư viện xử lý đầu vào đọc khi sử dụng trình bao tương tác, trừ khi
- ghi chú tùy chọn được đưa ra khi gọi trình bao. Chỉnh sửa dòng cũng được sử dụng khi sử dụng
-e tùy chọn cho đọc được xây dựng trong. Theo mặc định, các lệnh chỉnh sửa dòng tương tự như
của Emacs. Một giao diện chỉnh sửa dòng phong cách vi cũng có sẵn. Chỉnh sửa dòng có thể được
được bật bất cứ lúc nào bằng cách sử dụng -o emacs or -o vi các tùy chọn cho định nội trang (xem SHELL
ĐƯỢC XÂY DỰNG TRONG HÀNG phía dưới). Để tắt chỉnh sửa dòng sau khi trình bao đang chạy, hãy sử dụng +o
emacs or +o vi các tùy chọn cho định được xây dựng trong.

Đường dây đọc ký hiệu
Trong phần này, ký hiệu kiểu Emacs được sử dụng để biểu thị các lần nhấn phím. Các phím điều khiển là
ký hiệu là C-chính, ví dụ, Cn có nghĩa là Control-N. Tương tự, meta các phím được ký hiệu là M-chính,
vì vậy Mx có nghĩa là Meta-X. (Trên bàn phím không có meta phím, M-x nghĩa là ESC x, tức là, nhấn
Phím Escape rồi đến x Chìa khóa. Điều này làm cho ESC trở thành meta tiếp đầu ngữ. Sự kết hợp MC-x có nghĩa
ESC-Kiểm soát-xhoặc nhấn phím Escape rồi giữ phím Điều khiển trong khi nhấn x
Chìa khóa.)

Các lệnh dòng đọc có thể được cung cấp số đối số, thường hoạt động như một số lần lặp lại.
Tuy nhiên, đôi khi, đó là dấu hiệu của lập luận có ý nghĩa. Vượt qua một
đối số phủ định cho một lệnh hoạt động theo hướng chuyển tiếp (ví dụ: dây giết người) nguyên nhân
lệnh đó để hành động theo hướng lùi. Các lệnh có hành vi với các đối số
những sai lệch so với điều này được lưu ý dưới đây.

Khi một lệnh được mô tả là giết chết văn bản, văn bản đã xóa được lưu lại để có thể có trong tương lai
thu hồi (giật mạnh). Văn bản bị hủy được lưu trong một giết nhẫn. Nguyên nhân giết người liên tiếp
văn bản sẽ được tích lũy thành một đơn vị, có thể được kéo tất cả cùng một lúc. Lệnh nào
không giết văn bản tách các phần văn bản trên vòng ngắt.

Đường dây đọc Khởi tạo
Readline được tùy chỉnh bằng cách đưa các lệnh vào một tệp khởi tạo ( đầu vàorc nộp).
Tên của tệp này được lấy từ giá trị của ĐẦU VÀO Biến đổi. Nếu biến đó
chưa được đặt, mặc định là ~ / .inputrc. Khi một chương trình sử dụng thư viện dòng đọc
khởi động, tệp khởi tạo được đọc và các ràng buộc và biến khóa được thiết lập.
Chỉ có một số cấu trúc cơ bản được phép trong tệp khởi tạo dòng đọc. Trống
dòng bị bỏ qua. Các dòng bắt đầu bằng # là những bình luận. Các dòng bắt đầu bằng $
chỉ ra các cấu trúc có điều kiện. Các dòng khác biểu thị các ràng buộc chính và cài đặt biến.

Các ràng buộc khóa mặc định có thể được thay đổi bằng đầu vàorc tập tin. Các chương trình khác sử dụng
thư viện này có thể thêm các lệnh và ràng buộc của riêng chúng.

Ví dụ, đặt

M-Control-u: đối số phổ quát
or
C-Meta-u: đối số phổ quát
vào đầu vàorc sẽ khiến MCu thực hiện lệnh readline đối số phổ quát.

Các tên ký tự tượng trưng sau đây được công nhận: CHÙI, THE, ESC, LFD, DÒNG MỚI,
RET, TRỞ VỀ, Toà án nhân dân tối cao, SPACETAB.

Ngoài tên lệnh, dòng đọc cho phép các phím được liên kết với một chuỗi
được chèn khi phím được nhấn (a vĩ mô).

Đường dây đọc Key Bindings
Cú pháp để kiểm soát các ràng buộc chính trong đầu vàorc tập tin đơn giản. Tât cả đo la
bắt buộc là tên của lệnh hoặc văn bản của macro và chuỗi khóa mà nó
nên bị ràng buộc. Tên có thể được chỉ định theo một trong hai cách: như một tên khóa tượng trưng,
có thể với Mục tiêu- or Điều khiển- tiền tố, hoặc như một chuỗi khóa.

Khi sử dụng biểu mẫu tên khóa:Tên chức năng or vĩ mô, tên khóa là tên của một phím được đánh vần
ra bằng tiếng Anh. Ví dụ:

Control-u: phổ-đối số
Meta-Rubout: back-kill-word
Control-o: "> đầu ra"

Trong ví dụ trên, Cu bị ràng buộc với chức năng đối số phổ quát, M-DEL là ràng buộc để
chức năng ngược-giết-từCo bị ràng buộc để chạy macro được thể hiện ở bên phải
bên tay (nghĩa là để chèn văn bản ``> đầu ra '' vào dòng).

Ở dạng thứ hai, "keyseq":Tên chức năng or vĩ mô, keyseq khác với tên khóa ở trên trong
rằng các chuỗi biểu thị toàn bộ chuỗi khóa có thể được chỉ định bằng cách đặt chuỗi
trong dấu ngoặc kép. Có thể sử dụng một số cách thoát khóa kiểu GNU Emacs, như sau
ví dụ, nhưng tên ký tự tượng trưng không được nhận dạng.

"\ Cu": đối số phổ quát
"\ Cx \ Cr": đọc lại-init-tệp
"\ e [11 ~": "Phím chức năng 1"

Trong ví dụ này, Cu một lần nữa bị ràng buộc với chức năng đối số phổ quát. Cx Cr bị ràng buộc
đến chức năng đọc lại-init-tập tinESC [ 1 1 ~ bị ràng buộc để chèn văn bản `` Hàm
Phím 1 ''.

Toàn bộ các chuỗi thoát kiểu GNU Emacs là
\NS- tiền tố kiểm soát
\NS- tiền tố meta
\e một nhân vật trốn thoát
\\ dấu gạch chéo ngược
\" chữ "
\' chữ '

Ngoài các chuỗi thoát kiểu GNU Emacs, một loạt các chuỗi thoát dấu gạch chéo ngược thứ hai là
có sẵn:
\a cảnh báo (chuông)
\b BackSpace
\d xóa
\f thức ăn dạng
\n dòng mới
\r vận chuyển trở lại
\t Tab ngang
\v tab dọc
\nnn ký tự tám bit có giá trị là giá trị bát phân nnn (một đến ba
chữ số)
\xHH ký tự tám bit có giá trị là giá trị thập lục phân HH (một hoặc hai
chữ số hex)

Khi nhập văn bản của macro, dấu ngoặc kép hoặc đơn phải được sử dụng để biểu thị
định nghĩa vĩ mô. Văn bản chưa được trích dẫn được giả định là một tên hàm. Trong phần thân macro,
các thoát dấu gạch chéo ngược được mô tả ở trên được mở rộng. Dấu gạch chéo ngược sẽ trích dẫn bất kỳ ký tự nào khác
trong văn bản macro, bao gồm cả "và".

Cú đánh cho phép các ràng buộc khóa dòng đọc hiện tại được hiển thị hoặc sửa đổi với ràng buộc
lệnh nội trang. Chế độ chỉnh sửa có thể được chuyển đổi trong quá trình sử dụng tương tác bằng cách sử dụng -o
tùy chọn cho định lệnh nội trang (xem SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây).

Đường dây đọc Biến
Readline có các biến có thể được sử dụng để tùy chỉnh thêm hành vi của nó. Một biến có thể
được đặt trong đầu vàorc tệp với một tuyên bố của biểu mẫu

định tên biến giá trị

Ngoại trừ những nơi được lưu ý, các biến dòng đọc có thể nhận các giá trị On or tắt (không liên quan đến
trường hợp). Các tên biến không được công nhận sẽ bị bỏ qua. Khi một giá trị biến được đọc, trống hoặc
giá trị null, "on" (không phân biệt chữ hoa chữ thường) và "1" tương đương với On. Tất cả các giá trị khác là
tương đương với tắt. Các biến và giá trị mặc định của chúng là:

kiểu chuông (nghe được)
Kiểm soát những gì sẽ xảy ra khi readline muốn rung chuông đầu cuối. Nếu được đặt thành
không ai, readline không bao giờ đổ chuông. Nếu được đặt thành có thể nhìn thấy, dòng đọc sử dụng
chuông nếu có sẵn. Nếu được đặt thành có thể nghe được, readline cố gắng đổ chuông
chuông của thiết bị đầu cuối.
liên kết-tty-ký tự đặc biệt (Trên)
Nếu được đặt thành On, readline cố gắng liên kết các ký tự điều khiển được xử lý đặc biệt bởi
trình điều khiển đầu cuối của hạt nhân đối với các dòng tương đương của chúng.
thống kê màu (Tắt)
Nếu được đặt thành On, dòng đọc hiển thị các lần hoàn thành có thể sử dụng các màu khác nhau để
cho biết loại tệp của họ. Các định nghĩa màu sắc được lấy từ giá trị của
LS_COLORS biến môi trường.
bình luận-bắt đầu (`` # '')
Chuỗi được chèn khi dòng đọc chèn nhận xét lệnh được thực hiện.
Lệnh này liên kết với NS-# ở chế độ emacs và để # trong chế độ lệnh vi.
hoàn thành-bỏ qua-trường hợp (Tắt)
Nếu được đặt thành On, readline thực hiện đối sánh và hoàn thành tên tệp trong một
thời trang không phân biệt chữ hoa chữ thường.
Complete-prefix-display-length (0)
Độ dài tính bằng ký tự của tiền tố chung của danh sách các phép hoàn thành có thể có
được hiển thị mà không cần sửa đổi. Khi được đặt thành giá trị lớn hơn XNUMX,
các tiền tố chung dài hơn giá trị này được thay thế bằng dấu chấm lửng khi
hiển thị các hoàn thành có thể.
hoàn thành-truy vấn-mục (100)
Điều này xác định thời điểm người dùng được truy vấn về việc xem số lượng
hoàn thành được tạo bởi có thể hoàn thành yêu cầu. Nó có thể được đặt thành bất kỳ
giá trị nguyên lớn hơn hoặc bằng không. Nếu số lần hoàn thành có thể
lớn hơn hoặc bằng giá trị của biến này, người dùng được hỏi liệu
anh ta có muốn xem chúng hay không; nếu không chúng chỉ được liệt kê trên thiết bị đầu cuối.
chuyển đổi-meta (Trên)
Nếu được đặt thành On, readline sẽ chuyển đổi các ký tự có bit thứ tám được đặt thành ASCII
chuỗi khóa bằng cách loại bỏ bit thứ tám và đặt trước một ký tự thoát (trong
hiệu ứng, sử dụng thoát làm meta tiếp đầu ngữ).
vô hiệu hóa hoàn thành (Tắt)
Nếu được đặt thành On, readline sẽ hạn chế hoàn thành từ. Các ký tự hoàn thành sẽ là
được chèn vào dòng như thể chúng đã được ánh xạ tới tự chèn.
chế độ chỉnh sửa (emac)
Kiểm soát xem dòng đọc có bắt đầu bằng một tập hợp các liên kết khóa tương tự như Emacs or vi.
chế độ chỉnh sửa có thể được đặt thành một trong hai emacs or vi.
echo-control-ký tự (Trên)
Khi đặt thành On, trên các hệ điều hành cho biết chúng hỗ trợ nó, dòng đọc vọng lại
một ký tự tương ứng với một tín hiệu được tạo ra từ bàn phím.
Bật bàn phím (Tắt)
Khi đặt thành On, readline sẽ cố gắng bật bàn phím ứng dụng khi nó
triệu tập. Một số hệ thống cần điều này để kích hoạt các phím mũi tên.
bật-meta-key (Trên)
Khi đặt thành On, readline sẽ cố gắng bật bất kỳ phím bổ trợ meta nào trên thiết bị đầu cuối
tuyên bố sẽ hỗ trợ khi nó được gọi. Trên nhiều thiết bị đầu cuối, khóa meta được sử dụng để
gửi các ký tự tám bit.
mở rộng-dấu ngã (Tắt)
Nếu được đặt thành On, mở rộng dấu ngã được thực hiện khi dòng đọc cố gắng hoàn thành từ.
lịch sử-bảo tồn-điểm (Tắt)
Nếu được đặt thành On, mã lịch sử cố gắng đặt điểm tại cùng một vị trí trên mỗi
dòng lịch sử được truy xuất với lịch sử trước đây or lịch sử tiếp theo.
lịch sử-kích thước (0)
Đặt số lượng mục lịch sử tối đa được lưu trong danh sách lịch sử. Nếu được đặt thành
XNUMX, mọi mục lịch sử hiện có đều bị xóa và không có mục nhập mới nào được lưu. Nếu như
được đặt thành giá trị nhỏ hơn XNUMX, số lượng mục lịch sử không bị giới hạn. Qua
mặc định, số lượng mục lịch sử không bị giới hạn.
chế độ cuộn ngang (Tắt)
Khi đặt thành On, làm cho dòng đọc sử dụng một dòng duy nhất để hiển thị, cuộn đầu vào
theo chiều ngang trên một dòng màn hình khi nó trở nên dài hơn chiều rộng màn hình
thay vì chuyển sang một dòng mới.
đầu vào-meta (Tắt)
Nếu được đặt thành On, readline sẽ cho phép đầu vào tám bit (nghĩa là, nó sẽ không loại bỏ
bit cao từ các ký tự mà nó đọc), bất kể thiết bị đầu cuối tuyên bố nó như thế nào
có thể hỗ trợ. Tên cờ meta là một từ đồng nghĩa với biến này.
isearch-terminator (`` C- [C-J '')
Chuỗi ký tự sẽ kết thúc tìm kiếm gia tăng mà không có
sau đó thực thi ký tự như một lệnh. Nếu biến này không được
đã cho một giá trị, các ký tự ESCCJ sẽ kết thúc một tìm kiếm gia tăng.
bản đồ bàn phím (emac)
Đặt sơ đồ bàn phím dòng đọc hiện tại. Tập hợp các tên sơ đồ bàn phím hợp lệ là emac,
emacs-tiêu chuẩn, emacs-meta, emacs-ctlx, vi, lệnh vivi-chèn. vi is
tương đương với lệnh vi; emacs tương đương với emacs-tiêu chuẩn. Giá trị mặc định
is emacs; giá trị của chế độ chỉnh sửa cũng ảnh hưởng đến sơ đồ bàn phím mặc định.
keyseq-thời gian chờ (500)
Chỉ định thời lượng đường dẫn sẽ đợi một ký tự khi đọc một đoạn mơ hồ
chuỗi khóa (một chuỗi khóa có thể tạo thành chuỗi khóa hoàn chỉnh bằng cách sử dụng đầu vào đọc như vậy
xa hoặc có thể lấy thêm thông tin đầu vào để hoàn thành chuỗi khóa dài hơn). Nếu không có đầu vào
được nhận trong thời gian chờ, đường dẫn sẽ sử dụng khóa ngắn hơn nhưng đầy đủ
sự nối tiếp. Giá trị được chỉ định bằng mili giây, vì vậy giá trị 1000 có nghĩa là
đường dẫn sẽ đợi một giây để có thêm thông tin đầu vào. Nếu biến này được đặt thành
giá trị nhỏ hơn hoặc bằng XNUMX hoặc giá trị không phải số, đường dẫn sẽ đợi
cho đến khi một phím khác được nhấn để quyết định hoàn thành chuỗi phím nào.
thư mục đánh dấu (Trên)
Nếu được đặt thành On, tên thư mục đã hoàn thành có thêm dấu gạch chéo.
đánh dấu-sửa đổi-dòng (Tắt)
Nếu được đặt thành On, các dòng lịch sử đã được sửa đổi được hiển thị với
dấu hoa thị (*).
mark-symlinked-thư mục (Tắt)
Nếu được đặt thành On, các tên đã hoàn thành là các liên kết tượng trưng đến các thư mục có dấu gạch chéo
thêm vào (tùy thuộc vào giá trị của thư mục đánh dấu).
khớp-ẩn-tệp (Trên)
Biến này, khi được đặt thành On, khiến dòng đọc khớp với các tệp có tên bắt đầu
với dấu `. ' (tệp ẩn) khi thực hiện hoàn thành tên tệp. Nếu được đặt thành tắt, Các
dẫn đầu '.' phải được cung cấp bởi người dùng trong tên tệp để được hoàn thành.
tiền tố menu-hoàn-thành-hiển-thị (Tắt)
Nếu được đặt thành On, hoàn thành menu hiển thị tiền tố chung của danh sách có thể
hoàn thành (có thể trống) trước khi chuyển qua danh sách.
đầu ra-meta (Tắt)
Nếu được đặt thành On, dòng đọc sẽ hiển thị trực tiếp các ký tự có bit thứ tám
chứ không phải là một chuỗi thoát có tiền tố meta.
hoàn thành trang (Trên)
Nếu được đặt thành On, readline sử dụng nội bộ chi tiết-như máy nhắn tin để hiển thị một màn hình
có thể hoàn thành tại một thời điểm.
in-hoàn thành-theo chiều ngang (Tắt)
Nếu được đặt thành On, dòng đọc sẽ hiển thị phần hoàn thành với các kết quả phù hợp được sắp xếp theo chiều ngang trong
theo thứ tự bảng chữ cái, thay vì xuống màn hình.
hoàn nguyên tất cả tại dòng mới (Tắt)
Nếu được đặt thành On, dòng đọc sẽ hoàn tác tất cả các thay đổi đối với dòng lịch sử trước khi quay lại khi
dòng chấp nhận được thực thi. Theo mặc định, các dòng lịch sử có thể được sửa đổi và giữ lại
hoàn tác danh sách riêng lẻ trên các cuộc gọi tới đường dẫn.
hiển thị-tất cả-nếu-mơ hồ (Tắt)
Điều này làm thay đổi hành vi mặc định của các hàm hoàn thành. Nếu được đặt thành On, từ
mà có nhiều hơn một lần hoàn thành có thể làm cho các kết quả phù hợp được liệt kê
ngay lập tức thay vì rung chuông.
hiển thị tất cả-nếu-không sửa đổi (Tắt)
Điều này làm thay đổi hành vi mặc định của các hàm hoàn thành theo kiểu tương tự
đến hiển thị-tất cả-nếu-mơ hồ. Nếu được đặt thành On, những từ có thể có nhiều hơn một
hoàn thành mà không có bất kỳ hoàn thành một phần nào có thể xảy ra (hoàn thành có thể không
chia sẻ tiền tố chung) khiến các kết quả phù hợp được liệt kê ngay lập tức thay vì
rung chuông.
hiển thị-chế độ-trong-lời nhắc (Tắt)
Nếu được đặt thành On, thêm một ký tự vào đầu lời nhắc cho biết việc chỉnh sửa
chế độ: emacs (@), lệnh vi (:) hoặc chèn vi (+).
bỏ qua-hoàn-thành-văn bản (Tắt)
Nếu được đặt thành On, điều này làm thay đổi hành vi hoàn thành mặc định khi chèn một
khớp vào dòng. Nó chỉ hoạt động khi thực hiện hoàn thành ở giữa
một từ. Nếu được bật, dòng đọc sẽ không chèn các ký tự sau khi hoàn thành
nối các ký tự sau điểm trong từ được hoàn thành, vì vậy các phần của từ
sau con trỏ không bị trùng lặp.
thống kê hiển thị (Tắt)
Nếu được đặt thành On, một ký tự biểu thị loại tệp như được báo cáo bởi stat(2) được thêm vào
vào tên tệp khi liệt kê các hoàn thành có thể.

Đường dây đọc có điều kiện Cấu tạo
Readline triển khai một cơ sở tương tự về tinh thần với các tính năng biên dịch có điều kiện
của bộ tiền xử lý C cho phép các liên kết khóa và cài đặt biến được thực hiện như
kết quả của các bài kiểm tra. Có bốn chỉ thị phân tích cú pháp được sử dụng.

$ nếu Sản phẩm $ nếu cấu trúc cho phép các ràng buộc được thực hiện dựa trên chế độ chỉnh sửa,
thiết bị đầu cuối đang được sử dụng hoặc ứng dụng sử dụng dòng đọc. Văn bản của bài kiểm tra
kéo dài đến cuối dòng; không có ký tự nào được yêu cầu để cô lập nó.

chế độ Sản phẩm mode = hình thức của $ nếu chỉ thị được sử dụng để kiểm tra xem dòng đọc có ở
emacs hoặc chế độ vi. Điều này có thể được sử dụng cùng với định bản đồ bàn phím
ví dụ: để đặt các ràng buộc trong emacs-tiêu chuẩnemacs-ctlx
bản đồ bàn phím chỉ khi dòng đọc bắt đầu ở chế độ emacs.

kỳ hạn Sản phẩm hạn = biểu mẫu có thể được sử dụng để bao gồm các ràng buộc khóa cụ thể cho thiết bị đầu cuối,
có lẽ để liên kết các chuỗi khóa đầu ra bởi các phím chức năng của thiết bị đầu cuối.
Từ ở phía bên phải của = được kiểm tra dựa trên cả tên đầy đủ của
đầu cuối và một phần của tên thiết bị đầu cuối trước phần đầu tiên -. Điều này
cho phép mặt trời để phù hợp với cả hai mặt trờimặt trời-cmd, ví dụ.

ứng dụng
Sản phẩm ứng dụng cấu trúc được sử dụng để bao gồm các cài đặt dành riêng cho ứng dụng.
Mỗi chương trình sử dụng thư viện dòng đọc thiết lập ứng dụng tên, Và một
tệp khởi tạo có thể kiểm tra một giá trị cụ thể. Điều này có thể được sử dụng để
liên kết chuỗi khóa với các chức năng hữu ích cho một chương trình cụ thể. Vì
ví dụ, lệnh sau đây thêm một chuỗi khóa trích dẫn dòng điện
hoặc từ trước đó trong bash:

$ nếu Cú đánh
# Trích dẫn từ hiện tại hoặc trước đó
"\ C-xq": "\ eb \" \ ef \ ""
$ endif

$ endif Lệnh này, như đã thấy trong ví dụ trước, kết thúc một $ nếu chỉ huy.

$ khác Các lệnh trong nhánh này của $ nếu chỉ thị được thực hiện nếu thử nghiệm không thành công.

$ bao gồm
Chỉ thị này nhận một tên tệp duy nhất làm đối số và đọc các lệnh và
ràng buộc từ tệp đó. Ví dụ: lệnh sau sẽ đọc
/ etc / inputrc:

$ bao gồm / etc / inputrc

Tìm kiếm
Readline cung cấp các lệnh để tìm kiếm thông qua lịch sử lệnh (xem LỊCH SỬ dưới đây)
cho các dòng có chứa một chuỗi được chỉ định. Có hai chế độ tìm kiếm: gia tăngkhông
gia tăng.

Tìm kiếm tăng dần bắt đầu trước khi người dùng nhập xong chuỗi tìm kiếm. Như mỗi thứ
ký tự của chuỗi tìm kiếm được nhập, dòng đọc hiển thị mục nhập tiếp theo từ lịch sử
khớp với chuỗi đã nhập cho đến nay. Tìm kiếm gia tăng chỉ yêu cầu bao nhiêu ký tự
khi cần thiết để tìm mục nhập lịch sử mong muốn. Các ký tự hiện diện trong giá trị của
isearch-terminator biến được sử dụng để kết thúc một tìm kiếm gia tăng. Nếu điều đó
biến chưa được gán giá trị, các ký tự Escape và Control-J sẽ kết thúc
một tìm kiếm gia tăng. Control-G sẽ hủy tìm kiếm gia tăng và khôi phục
dòng ban đầu. Khi kết thúc tìm kiếm, mục nhập lịch sử chứa tìm kiếm
chuỗi trở thành dòng hiện tại.

Để tìm các mục nhập phù hợp khác trong danh sách lịch sử, hãy nhập Control-S hoặc Control-R là
thích hợp. Thao tác này sẽ tìm kiếm lùi hoặc tiến trong lịch sử cho mục nhập tiếp theo
khớp với chuỗi tìm kiếm đã nhập cho đến nay. Bất kỳ chuỗi khóa nào khác được liên kết với một dòng đọc
lệnh sẽ kết thúc tìm kiếm và thực hiện lệnh đó. Ví dụ, một dòng mới sẽ
chấm dứt tìm kiếm và chấp nhận dòng, do đó thực hiện lệnh từ lịch sử
danh sách.

Readline ghi nhớ chuỗi tìm kiếm tăng dần cuối cùng. Nếu hai Control-R được nhập
không có bất kỳ ký tự can thiệp nào xác định chuỗi tìm kiếm mới, bất kỳ tìm kiếm nào được ghi nhớ
chuỗi được sử dụng.

Các tìm kiếm không gia tăng đọc toàn bộ chuỗi tìm kiếm trước khi bắt đầu tìm kiếm
phù hợp với dòng lịch sử. Chuỗi tìm kiếm có thể do người dùng nhập hoặc là một phần của
nội dung của dòng hiện tại.

Đường dây đọc Lệnh tên
Sau đây là danh sách tên của các lệnh và chuỗi phím mặc định để
mà họ bị ràng buộc. Các tên lệnh không có chuỗi phím đi kèm không bị ràng buộc bởi
vỡ nợ. Trong các mô tả sau đây, điểm đề cập đến vị trí con trỏ hiện tại và
dấu đề cập đến vị trí con trỏ được lưu bởi đánh dấu yêu cầu. Văn bản giữa
điểm và dấu được gọi là khu.

Lệnh cho Di chuyển
đầu dòng (Ca)
Di chuyển đến đầu dòng hiện tại.
kết thúc dòng (Ce)
Di chuyển đến cuối dòng.
ký tự chuyển tiếp (Cf)
Di chuyển về phía trước một ký tự.
back-char (Cb)
Di chuyển lại một ký tự.
từ chuyển tiếp (Mf)
Chuyển tiếp đến cuối từ tiếp theo. Các từ được cấu tạo bởi chữ và số
ký tự (chữ cái và chữ số).
từ lạc hậu (Mb)
Di chuyển trở lại phần bắt đầu của từ hiện tại hoặc trước đó. Các từ được cấu tạo bởi
ký tự chữ và số (chữ cái và chữ số).
shell-forward-word
Chuyển tiếp đến cuối từ tiếp theo. Các từ được phân cách bằng khung không có dấu ngoặc kép
siêu ký tự.
shell-back-word
Di chuyển trở lại phần bắt đầu của từ hiện tại hoặc trước đó. Các từ được phân cách bằng
các siêu ký tự shell không được trích dẫn.
màn hình rõ ràng (Cl)
Xóa màn hình để lại dòng hiện tại ở đầu màn hình. Với một
đối số, làm mới dòng hiện tại mà không xóa màn hình.
vẽ lại-dòng-hiện-tại
Làm mới dòng hiện tại.

Lệnh cho Thao tác các Lịch Sử
dòng chấp nhận (Dòng mới, Trở lại)
Chấp nhận dòng bất kể con trỏ ở đâu. Nếu dòng này không trống, hãy thêm
nó vào danh sách lịch sử theo trạng thái của KIỂM SOÁT LỊCH SỬ Biến đổi. Nếu
dòng là dòng lịch sử đã sửa đổi, sau đó khôi phục dòng lịch sử về nguyên bản
nhà nước.
lịch sử trước đây (Cp)
Tìm nạp lệnh trước đó từ danh sách lịch sử, di chuyển trở lại trong danh sách.
lịch sử tiếp theo (Cn)
Tìm nạp lệnh tiếp theo từ danh sách lịch sử, chuyển tiếp trong danh sách.
sự khởi đầu của lịch sử (M- <)
Di chuyển đến dòng đầu tiên trong lịch sử.
cuối lịch sử (M->)
Di chuyển đến cuối lịch sử nhập, tức là dòng hiện đang được nhập.
ngược-lịch-sử-tìm-kiếm (Cr)
Tìm kiếm ngược lại bắt đầu từ dòng hiện tại và di chuyển lên trên qua lịch sử như
cần thiết. Đây là một tìm kiếm gia tăng.
lịch sử tìm kiếm chuyển tiếp (Cs)
Tìm kiếm về phía trước bắt đầu từ dòng hiện tại và di chuyển xuống dưới qua lịch sử
khi cần thiết. Đây là một tìm kiếm gia tăng.
lịch sử tìm kiếm không tăng dần (Mp)
Tìm kiếm ngược qua lịch sử bắt đầu từ dòng hiện tại bằng cách sử dụng
tìm kiếm gia tăng cho một chuỗi do người dùng cung cấp.
lịch sử tìm kiếm không gia tăng (Mn)
Tìm kiếm về phía trước trong lịch sử bằng cách sử dụng tìm kiếm không gia tăng cho một chuỗi
do người dùng cung cấp.
lịch sử-tìm kiếm-chuyển tiếp
Tìm kiếm trong lịch sử cho chuỗi ký tự từ đầu
của dòng hiện tại và điểm. Đây là một tìm kiếm không gia tăng.
history-search-back
Tìm kiếm ngược trong lịch sử cho chuỗi ký tự giữa phần bắt đầu
của dòng hiện tại và điểm. Đây là một tìm kiếm không gia tăng.
yank-nth-arg (MCy)
Chèn đối số đầu tiên vào lệnh trước đó (thường là từ thứ hai trên
dòng trước) tại điểm. Với một lập luận n, chèn ntừ thứ từ trước
lệnh (các từ trong lệnh trước bắt đầu bằng từ 0). Một lập luận phủ định
chèn ntừ thứ từ cuối của lệnh trước đó. Một khi đối số n is
được tính toán, đối số được trích xuất như thể dấu "!n"lịch sử mở rộng đã được
được chỉ định.
yank-cuối-arg (M-., M-_)
Chèn đối số cuối cùng vào lệnh trước đó (từ cuối cùng của lệnh trước
mục lịch sử). Với một đối số số, hãy cư xử chính xác như yank-nth-arg.
Các cuộc gọi liên tiếp tới yank-cuối-arg di chuyển trở lại danh sách lịch sử, chèn
từ cuối cùng (hoặc từ được chỉ định bởi đối số cho lệnh gọi đầu tiên) của mỗi dòng trong
xoay. Bất kỳ đối số số nào được cung cấp cho các lệnh gọi kế tiếp này sẽ xác định
hướng di chuyển qua lịch sử. Một đối số phủ định sẽ chuyển hướng
thông qua lịch sử (quay lại hoặc chuyển tiếp). Các cơ sở mở rộng lịch sử được sử dụng
để trích xuất từ ​​cuối cùng, như thể phần mở rộng lịch sử "! $" đã được chỉ định.
shell-mở rộng dòng (MCe)
Mở rộng dòng như shell. Điều này thực hiện mở rộng bí danh và lịch sử như
cũng như tất cả các mở rộng từ shell. Nhìn thấy LỊCH SỬ SỰ BÀNH TRƯỚNG dưới đây cho một
mô tả mở rộng lịch sử.
lịch sử-mở rộng-dòng (M- ^)
Thực hiện mở rộng lịch sử trên dòng hiện tại. Nhìn thấy LỊCH SỬ SỰ BÀNH TRƯỚNG dưới đây cho một
mô tả mở rộng lịch sử.
không gian ma thuật
Thực hiện mở rộng lịch sử trên dòng hiện tại và chèn một khoảng trắng. Nhìn thấy LỊCH SỬ
SỰ BÀNH TRƯỚNG dưới đây để mô tả về mở rộng lịch sử.
bí danh-expand-line
Thực hiện mở rộng bí danh trên dòng hiện tại. Nhìn thấy bí danh ở trên cho một mô tả
mở rộng bí danh.
lịch sử và bí danh-mở rộng dòng
Thực hiện mở rộng lịch sử và bí danh trên dòng hiện tại.
insert-last-đối số (M-., M-_)
Một từ đồng nghĩa với yank-cuối-arg.
vận hành và tiếp theo (Co)
Chấp nhận dòng hiện tại để thực thi và tìm nạp dòng tiếp theo liên quan đến
dòng hiện tại từ lịch sử để chỉnh sửa. Mọi đối số đều bị bỏ qua.
sửa-và-thực hiện-lệnh (C-xC-e)
Gọi một trình soạn thảo trên dòng lệnh hiện tại và thực thi kết quả dưới dạng shell
lệnh. Cú đánh cố gắng kêu gọi $ VISUAL, $ EDITORemacs với tư cách là người biên tập, trong
đơn đặt hàng đó.

Lệnh cho Thay đổi bản văn
phần cuối của tập tin (Thường Đĩa CD)
Ví dụ: ký tự cho biết phần cuối của tệp được đặt bởi `` stty ''. Nếu điều này
ký tự được đọc khi không có ký tự nào trên dòng và điểm ở
đầu dòng, Readline hiểu nó là phần cuối của dữ liệu nhập và trả về EOF.
xóa-ký tự (Đĩa CD)
Xóa ký tự tại điểm. Nếu hàm này được liên kết với cùng một ký tự như
tty EOF nhân vật, như CD thường là, xem ở trên để biết các hiệu ứng.
back-delete-char (Chùi)
Xóa ký tự phía sau con trỏ. Khi được cung cấp một đối số số, hãy lưu
đã xóa văn bản trên vòng tiêu diệt.
chuyển tiếp-lùi-xóa-ký tự
Xóa ký tự dưới con trỏ, trừ khi con trỏ ở cuối dòng,
trong trường hợp đó ký tự phía sau con trỏ sẽ bị xóa.
trích dẫn-chèn (Cq, Cv)
Thêm ký tự tiếp theo được nhập nguyên văn vào dòng. Đây là cách chèn
nhân vật như Cq, ví dụ.
chèn tab (Cv CHUYỂN HƯỚNG)
Chèn một ký tự tab.
tự chèn (Một, b, A, 1, !, ...)
Chèn ký tự đã nhập.
hoán vị ký tự (Ct)
Kéo ký tự trước khi trỏ về phía trước qua ký tự tại điểm, điểm di chuyển
về phía trước là tốt. Nếu điểm nằm ở cuối dòng, thì điểm này sẽ hoán vị hai
ký tự trước điểm. Đối số phủ định không có tác dụng.
chuyển từ (Mt)
Kéo từ trước điểm qua từ này đến điểm khác, di chuyển điểm trên từ đó
cũng. Nếu điểm nằm ở cuối dòng, điểm này sẽ hoán vị hai từ cuối cùng trên
dòng.
chữ in hoa (Mu)
Viết hoa từ hiện tại (hoặc sau). Với một đối số phủ định, hãy viết hoa
từ trước, nhưng không di chuyển điểm.
chữ thường (Ml)
Viết thường từ hiện tại (hoặc sau). Với một đối số phủ định, viết thường
từ trước, nhưng không di chuyển điểm.
viết hoa từ (Mc)
Viết hoa từ hiện tại (hoặc sau). Với một đối số phủ định, viết hoa
từ trước đó, nhưng không di chuyển điểm.
chế độ ghi đè
Chuyển đổi chế độ ghi đè. Với một đối số số dương rõ ràng, chuyển sang
chế độ ghi đè. Với một đối số số không dương rõ ràng, chuyển sang chèn
chế độ. Lệnh này chỉ ảnh hưởng đến emacs chế độ; vi chế độ ghi đè khác nhau.
Mỗi cuộc gọi đến readline () bắt đầu ở chế độ chèn. Ở chế độ ghi đè, các ký tự bị ràng buộc
đến tự chèn thay thế văn bản tại điểm thay vì đẩy văn bản sang bên phải.
Các ký tự bị ràng buộc với back-delete-char thay thế ký tự trước điểm bằng một
khoảng trống. Theo mặc định, lệnh này không bị ràng buộc.

Giết chết Yank
dây giết người (Ck)
Giết văn bản từ điểm đến cuối dòng.
ngược dòng tiêu diệt (Cx Chùi)
Giết lùi về đầu dòng.
unix-line-loại bỏ (Cu)
Giết lùi từ điểm đến đầu dòng. Văn bản bị hủy được lưu vào
vòng giết người.
giết toàn bộ dòng
Giết tất cả các ký tự trên dòng hiện tại, bất kể điểm ở đâu.
giết từ (Md)
Giết từ điểm đến cuối từ hiện tại hoặc nếu giữa các từ, đến cuối
từ tiếp theo. Các ranh giới từ cũng giống như các ranh giới được sử dụng bởi từ chuyển tiếp.
ngược-giết-từ (M-Routout)
Giết từ đằng sau điểm. Các ranh giới từ cũng giống như các ranh giới được sử dụng bởi
từ lạc hậu.
shell-kill-từ (Md)
Giết từ điểm đến cuối từ hiện tại hoặc nếu giữa các từ, đến cuối
từ tiếp theo. Các ranh giới từ cũng giống như các ranh giới được sử dụng bởi shell-forward-word.
shell-back-kill-word (M-Routout)
Giết từ đằng sau điểm. Các ranh giới từ cũng giống như các ranh giới được sử dụng bởi
shell-back-word.
unix-word-rubout (Cw)
Giết từ phía sau điểm, sử dụng khoảng trắng làm ranh giới từ. Văn bản bị giết
được lưu trên vòng tiêu diệt.
unix-tên-tệp-rubout
Bỏ từ đằng sau điểm, sử dụng khoảng trắng và ký tự gạch chéo làm từ
ranh giới. Văn bản đã kết thúc được lưu trên vòng kết thúc.
xóa-dấu cách ngang (M- \)
Xóa tất cả các khoảng trắng và các tab xung quanh điểm.
vùng giết người
Hủy văn bản trong vùng hiện tại.
copy-khu vực-as-kill
Sao chép văn bản trong vùng vào bộ đệm tiêu diệt.
copy-back-word
Sao chép từ trước khi trỏ vào bộ đệm tiêu diệt. Các ranh giới từ giống như
từ lạc hậu.
sao chép-chuyển tiếp-từ
Sao chép từ sau điểm vào bộ đệm tiêu diệt. Các ranh giới từ giống nhau
as từ chuyển tiếp.
yank (C y)
Kéo phần trên cùng của vòng tiêu diệt vào bộ đệm tại điểm.
yank-pop (Của tôi)
Xoay vòng tiêu diệt và kéo đầu mới. Chỉ hoạt động sau yank or yank-pop.

Numeric Lập luận
đối số chữ số (M-0, M-1, ..., M--)
Thêm chữ số này vào đối số đã tích lũy hoặc bắt đầu đối số mới. M--
bắt đầu một đối số phủ định.
đối số phổ quát
Đây là một cách khác để chỉ định một đối số. Nếu lệnh này được theo sau bởi một hoặc
nhiều chữ số hơn, tùy chọn với một dấu trừ ở đầu, những chữ số đó xác định
lý lẽ. Nếu lệnh được theo sau bởi các chữ số, việc thực thi đối số phổ quát một lần nữa
kết thúc đối số số, nhưng nếu không sẽ bị bỏ qua. Là một trường hợp đặc biệt, nếu điều này
ngay sau lệnh là một ký tự không phải là chữ số hoặc dấu trừ
dấu, số đối số cho lệnh tiếp theo được nhân với bốn. Lý lẽ
ban đầu số đếm là một, vì vậy việc thực thi hàm này lần đầu tiên sẽ làm cho
đối số đếm bốn, lần thứ hai làm cho đối số đếm mười sáu, v.v.

Hoàn thành
hoàn thành (CHUYỂN HƯỚNG)
Cố gắng hoàn thành văn bản trước điểm. Cú đánh cố gắng hoàn thành
coi văn bản như một biến (nếu văn bản bắt đầu bằng $), tên người dùng (nếu văn bản
bắt đầu với ~), tên máy chủ (nếu văn bản bắt đầu bằng @), hoặc lệnh (bao gồm cả bí danh
và các chức năng) lần lượt. Nếu không có cái nào trong số này tạo ra sự trùng khớp, thì hoàn thành tên tệp là
đã cố gắng.
có thể hoàn thành (NS-?)
Liệt kê những điểm có thể hoàn thành của văn bản trước điểm.
chèn-hoàn thành (M- *)
Chèn tất cả các phần hoàn chỉnh của văn bản trước điểm sẽ được tạo bởi
có thể hoàn thành.
menu hoàn chỉnh
Tương tự như hoàn thành, nhưng thay thế từ được hoàn thành bằng một kết hợp duy nhất từ
danh sách các hoàn thành có thể. Thực hiện lặp đi lặp lại menu hoàn chỉnh bước
thông qua danh sách có thể hoàn thành, lần lượt chèn từng kết quả phù hợp. Cuối cùng
trong danh sách hoàn thành, chuông sẽ rung (tùy thuộc vào cài đặt của kiểu chuông)
và văn bản gốc được khôi phục. Một đối số của n di chuyển n vị trí chuyển tiếp trong
danh sách các trận đấu; một đối số phủ định có thể được sử dụng để lùi lại thông qua
danh sách. Lệnh này nhằm mục đích ràng buộc với TAB, nhưng không bị ràng buộc theo mặc định.
menu-hoàn-tất-ngược
Giống hệt menu hoàn chỉnh, nhưng lùi lại qua danh sách có thể
hoàn thành, như thể menu hoàn chỉnh đã được đưa ra một lập luận tiêu cực. Lệnh này
là không bị ràng buộc theo mặc định.
xóa-char-hoặc-danh sách
Xóa ký tự dưới con trỏ nếu không ở đầu hoặc cuối dòng
(như xóa-ký tự). Nếu ở cuối dòng, hoạt động giống hệt với
có thể hoàn thành. Lệnh này không bị ràng buộc theo mặc định.
tên tập tin đầy đủ (NS-/)
Cố gắng hoàn thành tên tệp trên văn bản trước điểm.
có thể-tên-tệp-hoàn thành (Cx /)
Liệt kê các phần hoàn chỉnh có thể có của văn bản trước điểm, coi nó như một tên tệp.
tên người dùng hoàn chỉnh (M- ~)
Cố gắng hoàn thành văn bản trước thời điểm, coi nó như một tên người dùng.
có thể-tên người dùng-hoàn thành (Cx ~)
Liệt kê các phần hoàn chỉnh có thể có của văn bản trước điểm, coi nó như một tên người dùng.
biến hoàn chỉnh (M- $)
Cố gắng hoàn thành văn bản trước điểm, coi nó như một biến shell.
có thể-biến-hoàn thành (Cx $)
Liệt kê các phần hoàn chỉnh có thể có của văn bản trước điểm, coi nó như một lớp vỏ
biến.
tên máy chủ hoàn chỉnh (M- @)
Cố gắng hoàn thành văn bản trước điểm, coi nó như một tên máy chủ.
có thể-tên máy-hoàn thành (Cx @)
Liệt kê các phần hoàn chỉnh có thể có của văn bản trước điểm, coi nó như một tên máy chủ.
lệnh hoàn chỉnh (M-!)
Cố gắng hoàn thành văn bản trước điểm, coi nó như một tên lệnh.
Hoàn thành lệnh cố gắng khớp văn bản với bí danh, từ dành riêng,
các hàm shell, nội trang shell và cuối cùng là tên tệp thực thi, theo thứ tự đó.
có thể-lệnh-hoàn thành (Cx !)
Liệt kê các phần hoàn chỉnh có thể có của văn bản trước điểm, coi nó như một lệnh
tên.
động-hoàn-thành-lịch-sử (M-TAB)
Cố gắng hoàn thành văn bản trước điểm, so sánh văn bản với các dòng từ
danh sách lịch sử cho các trận đấu hoàn thành có thể có.
dabbrev-mở rộng
Cố gắng hoàn thành menu trên văn bản trước điểm, so sánh văn bản với các dòng
từ danh sách lịch sử cho các trận đấu hoàn thành có thể có.
hoàn thành niềng răng (M- {)
Thực hiện hoàn thành tên tệp và chèn danh sách các hoàn thành có thể có kèm theo
trong dấu ngoặc nhọn để danh sách có sẵn cho shell (xem Cú đúp Sự bành trướng ở trên).

Bàn phím Macros
bắt đầu-kbd-macro (Cx ()
Bắt đầu lưu các ký tự được nhập vào macro bàn phím hiện tại.
cuối-kbd-macro (Cx ))
Dừng lưu các ký tự đã nhập vào macro bàn phím hiện tại và lưu trữ
Định nghĩa.
cuộc gọi cuối cùng-kbd-macro (Cx e)
Thực thi lại macro bàn phím cuối cùng được xác định, bằng cách tạo các ký tự trong macro
xuất hiện như thể được gõ trên bàn phím.
in-last-kbd-macro ()
In macro bàn phím cuối cùng được xác định ở định dạng phù hợp với đầu vàorc tập tin.

hỗn hợp
đọc lại-init-tập tin (Cx Cr)
Đọc nội dung của đầu vàorc và kết hợp mọi ràng buộc hoặc biến
bài tập được tìm thấy ở đó.
Huỷ bỏ (Cg)
Hủy lệnh chỉnh sửa hiện tại và rung chuông của thiết bị đầu cuối (tùy thuộc vào
thiết lập của kiểu chuông).
do-hoa-phiên bản (Ma, Mb, M-x, ...)
Nếu ký tự được metafied x là chữ thường, hãy chạy lệnh được liên kết với
ký tự in hoa tương ứng.
tiền tố-meta (THOÁT)
Metafy ký tự tiếp theo được nhập. ESC f tương đương với Meta-f.
lùi lại (C-_, Cx Cu)
Hoàn tác tăng dần, được ghi nhớ riêng cho từng dòng.
dòng hoàn nguyên (Ông)
Hoàn tác tất cả các thay đổi được thực hiện đối với dòng này. Điều này giống như thực hiện lùi lại đủ lệnh
lần để đưa dòng về trạng thái ban đầu.
dấu ngã mở rộng (M- &)
Thực hiện mở rộng dấu ngã trên từ hiện tại.
đánh dấu (C-@, M- )
Đặt điểm đánh dấu cho điểm. Nếu một đối số số được cung cấp, dấu được đặt thành
vị trí đó.
trao đổi-điểm-và-đánh dấu (Cx Cx)
Hoán đổi điểm với dấu. Vị trí con trỏ hiện tại được đặt thành
vị trí, và vị trí con trỏ cũ được lưu dưới dạng dấu.
tìm kiếm ký tự (C-])
Một ký tự được đọc và điểm được chuyển đến lần xuất hiện tiếp theo của ký tự đó. MỘT
số lượng tìm kiếm phủ định cho các lần xuất hiện trước đó.
ký tự-tìm kiếm-lùi lại (MC-])
Một ký tự được đọc và điểm được chuyển đến lần xuất hiện trước của ký tự đó
tính cách. Số lượng phủ định tìm kiếm các lần xuất hiện tiếp theo.
bỏ qua-csi-trình tự
Đọc đủ các ký tự để sử dụng một chuỗi nhiều khóa, chẳng hạn như những ký tự được xác định cho
các phím như Home và End. Các chuỗi như vậy bắt đầu bằng Chỉ báo trình tự điều khiển
(CSI), thường là ESC- [. Nếu chuỗi này được liên kết với "\ [", các khóa tạo ra
trình tự sẽ không có hiệu lực trừ khi được ràng buộc rõ ràng với lệnh dòng đọc,
thay vì chèn các ký tự lạc vào bộ đệm chỉnh sửa. Điều này không bị ràng buộc bởi
mặc định, nhưng thường bị ràng buộc với ESC- [.
chèn nhận xét (M- #)
Không có đối số số, giá trị của dòng đọc bình luận-bắt đầu biến là
được chèn vào đầu dòng hiện tại. Nếu một đối số số được cung cấp,
lệnh này hoạt động như một chuyển đổi: nếu các ký tự ở đầu dòng làm
không khớp với giá trị của bình luận-bắt đầu, giá trị được chèn, nếu không
ký tự trong bình luận-bắt đầu bị xóa từ đầu dòng. Trong cả hai
trường hợp, dòng được chấp nhận như thể một dòng mới đã được nhập. Giá trị mặc định của
bình luận-bắt đầu khiến lệnh này làm cho dòng hiện tại trở thành một bình luận shell. Nếu một
đối số số làm cho ký tự nhận xét bị xóa, dòng sẽ là
được thực thi bởi shell.
toàn cầu-từ (Mg)
Từ trước điểm được coi như một mẫu để mở rộng tên đường dẫn, với
dấu hoa thị được thêm vào một cách ngầm định. Mẫu này được sử dụng để tạo danh sách kết hợp
tên tệp để có thể hoàn thành.
cầu-mở-rộng-từ (Cx *)
Từ trước điểm được coi như một mẫu để mở rộng tên đường dẫn và danh sách
tên tệp phù hợp được chèn, thay thế từ. Nếu một đối số số là
được cung cấp, dấu hoa thị được thêm vào trước khi mở rộng tên đường dẫn.
danh sách toàn cầu-mở rộng (Cx g)
Danh sách các bản mở rộng sẽ được tạo bởi cầu-mở-rộng-từ is
hiển thị, và dòng được vẽ lại. Nếu một đối số số được cung cấp, một dấu hoa thị
được thêm vào trước khi mở rộng tên đường dẫn.
chức năng kết xuất
In tất cả các chức năng và các ràng buộc chính của chúng vào luồng đầu ra dòng đọc.
Nếu một đối số số được cung cấp, đầu ra được định dạng theo cách mà nó
có thể trở thành một phần của một đầu vàorc tập tin.
biến kết xuất
In tất cả các biến dòng đọc có thể cài đặt và giá trị của chúng vào dòng đọc
luồng đầu ra. Nếu một đối số số được cung cấp, đầu ra được định dạng như vậy
một cách mà nó có thể trở thành một phần của đầu vàorc tập tin.
kết xuất macro
In tất cả các chuỗi khóa dòng đọc được liên kết với macro và các chuỗi mà chúng
đầu ra. Nếu một đối số số được cung cấp, đầu ra được định dạng theo cách đó
rằng nó có thể trở thành một phần của đầu vàorc tập tin.
display-shell-phiên bản (Cx Cv)
Hiển thị thông tin phiên bản về phiên bản hiện tại của bash.

Programmable Hoàn thành
Khi cố gắng hoàn thành từ cho một đối số cho một lệnh mà hoàn thành
đặc điểm kỹ thuật (a tổng hợp) đã được xác định bằng cách sử dụng hoàn thành nội trang (xem SHELL ĐƯỢC XÂY DỰNG TRONG
HÀNG bên dưới), các phương tiện hoàn thành có thể lập trình được gọi.

Đầu tiên, tên lệnh được xác định. Nếu từ lệnh là chuỗi trống
(đã cố gắng hoàn thành ở đầu một dòng trống), bất kỳ compspec nào được xác định với -E
tùy chọn để hoàn thành Được sử dụng. Nếu một compspec đã được xác định cho lệnh đó, compspec
được sử dụng để tạo danh sách các phần hoàn chỉnh có thể có cho từ. Nếu từ lệnh là
tên đường dẫn đầy đủ, một compspec cho tên đường dẫn đầy đủ được tìm kiếm đầu tiên. Nếu không có compspec
được tìm thấy cho tên đường dẫn đầy đủ, một nỗ lực được thực hiện để tìm một compspec cho phần
sau dấu gạch chéo cuối cùng. Nếu những tìm kiếm đó không dẫn đến một tệp nén, bất kỳ tệp nén nào
được xác định với -D tùy chọn để hoàn thành được sử dụng làm mặc định.

Khi một compspec đã được tìm thấy, nó được sử dụng để tạo danh sách các từ phù hợp. Nếu một
compspec không được tìm thấy, mặc định bash hoàn thành như mô tả ở trên dưới Hoàn thành is
đã thực hiện.

Đầu tiên, các hành động được chỉ định bởi compspec được sử dụng. Chỉ các kết quả phù hợp có tiền tố
từ được hoàn thành được trả lại. Khi mà -f or -d tùy chọn được sử dụng cho tên tệp hoặc
hoàn thành tên thư mục, biến shell ĐĂNG KÝ được sử dụng để lọc các kết quả phù hợp.

Bất kỳ lần hoàn thành nào được chỉ định bởi mẫu mở rộng tên đường dẫn đến -G tùy chọn được tạo
tiếp theo. Các từ được tạo bởi mẫu không cần phải khớp với từ đang được hoàn thành. Các
TOÀN CẦU biến shell không được sử dụng để lọc các kết quả phù hợp, nhưng ĐĂNG KÝ biến là
đã sử dụng.

Tiếp theo, chuỗi được chỉ định làm đối số cho -W tùy chọn được xem xét. Chuỗi là
lần chia đầu tiên bằng cách sử dụng các ký tự trong IFS biến đặc biệt làm dấu phân cách. Báo giá vỏ
được vinh danh. Sau đó, mỗi từ được mở rộng bằng cách sử dụng mở rộng dấu ngoặc nhọn, mở rộng dấu ngã, tham số
và mở rộng biến, thay thế lệnh và mở rộng số học, như được mô tả ở trên
Dưới SỰ BÀNH TRƯỚNG. Các kết quả được phân chia bằng cách sử dụng các quy tắc được mô tả ở trên trong Từ
Tách. Kết quả của việc mở rộng được so khớp tiền tố với từ là
đã hoàn thành và các từ phù hợp trở thành các từ hoàn thành có thể có.

Sau khi các kết quả phù hợp này được tạo, bất kỳ hàm hoặc lệnh shell nào được chỉ định với
-F-C các tùy chọn được gọi. Khi lệnh hoặc hàm được gọi, COMP_LINE,
COMP_POINT, COMP_KEYCOMP_TYPE các biến được gán giá trị như được mô tả ở trên trong
Shell Biến. Nếu một hàm shell đang được gọi, COMP_WORDSCOMP_CWORD
các biến cũng được thiết lập. Khi hàm hoặc lệnh được gọi, đối số đầu tiên ($1)
là tên của lệnh có các đối số đang được hoàn thành, đối số thứ hai ($2)
là từ đang được hoàn thành và đối số thứ ba ($3) là từ đứng trước từ
đang được hoàn thành trên dòng lệnh hiện tại. Không lọc các phần hoàn chỉnh đã tạo
chống lại từ được hoàn thành được thực hiện; chức năng hoặc lệnh đã hoàn thành
tự do trong việc tạo ra các trận đấu.

Bất kỳ chức năng nào được chỉ định với -F được gọi trước. Hàm có thể sử dụng bất kỳ shell nào
cơ sở vật chất, bao gồm tổng hợp nội trang được mô tả bên dưới, để tạo các kết quả phù hợp. Nó
phải đặt các hoàn thành có thể có trong HOÀN TOÀN biến mảng, một biến trên mỗi phần tử mảng.

Tiếp theo, bất kỳ lệnh nào được chỉ định với -C tùy chọn được gọi trong một môi trường tương đương với
lệnh thay thế. Nó sẽ in một danh sách các phần hoàn thành, một phần trên mỗi dòng, cho
đầu ra tiêu chuẩn. Dấu gạch chéo ngược có thể được sử dụng để thoát dòng mới, nếu cần.

Sau khi tất cả các lần hoàn thành có thể được tạo, bất kỳ bộ lọc nào được chỉ định với -X
tùy chọn được áp dụng cho danh sách. Bộ lọc là một mẫu được sử dụng để mở rộng tên đường dẫn; Một
& trong mô hình được thay thế bằng văn bản của từ được hoàn thành. Một chữ & có thể
được thoát bằng dấu gạch chéo ngược; dấu gạch chéo ngược được loại bỏ trước khi thử so khớp. Bất cứ
hoàn thành phù hợp với mẫu sẽ bị xóa khỏi danh sách. Một sự dẫn đầu ! phủ định
hoa văn; trong trường hợp này, bất kỳ hoàn thành nào không khớp với mẫu sẽ bị xóa.

Cuối cùng, bất kỳ tiền tố và hậu tố nào được chỉ định với -P-S các tùy chọn được thêm vào mỗi
thành viên của danh sách hoàn thành và kết quả được trả về mã hoàn thành dòng đọc
như danh sách các hoàn thành có thể.

Nếu các hành động được áp dụng trước đó không tạo ra bất kỳ kết quả phù hợp nào và -o tên tùy chọn
đã được cung cấp cho hoàn thành khi compspec được định nghĩa, việc hoàn thành tên thư mục là
đã cố gắng.

Nếu -o plusdirs tùy chọn đã được cung cấp cho hoàn thành khi compspec được xác định,
Đã cố gắng hoàn thành tên thư mục và bất kỳ kết quả phù hợp nào được thêm vào kết quả của
hành động khác.

Theo mặc định, nếu một compspec được tìm thấy, bất cứ thứ gì nó tạo ra đều được trả về khi hoàn thành
mã như là tập hợp đầy đủ các hoàn thành có thể có. Mặc định bash hoàn thành không
đã cố gắng, và mặc định dòng đọc của hoàn thành tên tệp bị tắt. Nếu -o
bashdefault tùy chọn đã được cung cấp cho hoàn thành khi compspec được xác định, bash
hoàn thành mặc định được thực hiện nếu compspec không tạo ra kết quả phù hợp nào. Nếu -o mặc định
tùy chọn đã được cung cấp cho hoàn thành khi compspec được xác định, mặc định của readline
quá trình hoàn thành sẽ được thực hiện nếu compspec (và, nếu được thử, giá trị mặc định bash
hoàn thành) không tạo ra kết quả phù hợp.

Khi một compspec chỉ ra rằng việc hoàn thành tên thư mục là mong muốn, thì có thể lập trình
các hàm hoàn thành buộc dòng đọc phải thêm một dấu gạch chéo vào các tên đã hoàn thành
các liên kết tượng trưng đến các thư mục, tùy thuộc vào giá trị của thư mục đánh dấu đường dẫn
biến, bất kể cài đặt của mark-symlinked-thư mục biến readline.

Có một số hỗ trợ cho việc hoàn thành sửa đổi động. Điều này hữu ích nhất khi
được sử dụng kết hợp với một hoàn thành mặc định được chỉ định với hoàn thành -D. Nó có thể
đối với các hàm shell được thực thi dưới dạng trình xử lý hoàn thành để chỉ ra rằng việc hoàn thành phải được
thử lại bằng cách trả về trạng thái thoát là 124. Nếu một hàm shell trả về 124 và thay đổi
compspec được liên kết với lệnh đang cố gắng hoàn thành (được cung cấp
là đối số đầu tiên khi hàm được thực thi), quá trình hoàn thành có thể lập trình khởi động lại
ngay từ đầu, với nỗ lực tìm một compspec mới cho lệnh đó. Điều này cho phép
một tập hợp các phần hoàn chỉnh sẽ được xây dựng động khi cố gắng hoàn thành, thay vì
tải tất cả cùng một lúc.

Ví dụ: giả sử rằng có một thư viện các tệp compspec, mỗi tệp được lưu giữ trong một tệp
tương ứng với tên của lệnh, hàm hoàn thành mặc định sau sẽ
tải hoàn thành động:

_completion_loader ()
{
. "/etc/bash_completion.d/$ 1.sh "> / dev / null 2> & 1 && trả về 124
}
hoàn thành -D -F _completion_loader -o bashdefault -o mặc định

LỊCH SỬ


Khi -o lịch sử tùy chọn cho định nội trang được bật, trình bao cung cấp quyền truy cập vào
lệnh lịch sử, danh sách các lệnh đã gõ trước đó. Giá trị của KÍCH THƯỚC LỊCH SỬ
biến được sử dụng làm số lượng lệnh để lưu trong danh sách lịch sử. Văn bản của
cuối cùng KÍCH THƯỚC LỊCH SỬ các lệnh (mặc định là 500) được lưu. Trình bao lưu trữ từng lệnh trong
danh sách lịch sử trước khi mở rộng tham số và biến (xem SỰ BÀNH TRƯỚNG ở trên) nhưng sau
mở rộng lịch sử được thực hiện, tùy thuộc vào các giá trị của các biến shell LỊCH SỬ
KIỂM SOÁT LỊCH SỬ.

Khi khởi động, lịch sử được khởi tạo từ tệp được đặt tên bởi biến LỊCH SỬ
(vỡ nợ ~ / .bash_history). Tệp được đặt tên theo giá trị của LỊCH SỬ bị cắt ngắn, nếu
cần thiết, không được chứa nhiều hơn số dòng được chỉ định bởi giá trị của
KÍCH THƯỚC LỊCH SỬ. Nếu KÍCH THƯỚC LỊCH SỬ chưa được đặt hoặc được đặt thành null, một giá trị không phải số hoặc một số
giá trị nhỏ hơn XNUMX, tệp lịch sử không bị cắt bớt. Khi tệp lịch sử được đọc,
các dòng bắt đầu bằng ký tự nhận xét lịch sử, ngay sau đó là một chữ số là
được hiểu là dấu thời gian cho dòng lịch sử trước đó. Các dấu thời gian này là tùy chọn
hiển thị tùy thuộc vào giá trị của ĐỊNH DẠNG THỜI GIAN LỊCH SỰ Biến đổi. Khi một vỏ với
lần thoát đã kích hoạt lịch sử, lần thoát cuối cùng $ HISTSIZE các dòng được sao chép từ danh sách lịch sử sang
$ HISTFILE. Nếu nối thêm tùy chọn shell được kích hoạt (xem mô tả của xô đẩy Dưới
SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG bên dưới), các dòng được nối vào tệp lịch sử, nếu không
tệp lịch sử bị ghi đè. Nếu LỊCH SỬ chưa được đặt hoặc nếu tệp lịch sử không thể ghi được,
lịch sử không được lưu. Nếu ĐỊNH DẠNG THỜI GIAN LỊCH SỰ biến được thiết lập, dấu thời gian được viết
vào tệp lịch sử, được đánh dấu bằng ký tự nhận xét lịch sử, vì vậy chúng có thể được giữ nguyên
qua các phiên shell. Điều này sử dụng ký tự nhận xét lịch sử để phân biệt dấu thời gian
từ các dòng lịch sử khác. Sau khi lưu lịch sử, tệp lịch sử được cắt ngắn thành
không chứa nhiều hơn KÍCH THƯỚC LỊCH SỬ các dòng. Nếu như KÍCH THƯỚC LỊCH SỬ chưa được đặt hoặc được đặt thành null, không phải
giá trị số hoặc giá trị số nhỏ hơn XNUMX, tệp lịch sử không bị cắt bớt.

Lệnh nội trang fc (xem SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG dưới đây) có thể được sử dụng để liệt kê hoặc chỉnh sửa và
thực hiện lại một phần của danh sách lịch sử. Các lịch sử nội trang có thể được sử dụng để hiển thị hoặc
sửa đổi danh sách lịch sử và thao tác với tệp lịch sử. Khi sử dụng chỉnh sửa dòng lệnh,
các lệnh tìm kiếm có sẵn trong mỗi chế độ chỉnh sửa cung cấp quyền truy cập vào lịch sử
danh sách.

Trình bao cho phép kiểm soát các lệnh nào được lưu trong danh sách lịch sử. Các
KIỂM SOÁT LỊCH SỬLỊCH SỬ các biến có thể được đặt để khiến trình bao chỉ lưu một tập hợp con
của các lệnh đã nhập. Các giáo dân tùy chọn shell, nếu được bật, sẽ làm cho shell
cố gắng lưu từng dòng của lệnh nhiều dòng trong cùng một mục nhập lịch sử, thêm
dấu chấm phẩy khi cần thiết để duy trì tính đúng đắn về mặt cú pháp. Các đá thạch anh tùy chọn vỏ
khiến trình bao lưu lệnh bằng các dòng mới được nhúng thay vì dấu chấm phẩy. Xem
mô tả của xô đẩy nội trang bên dưới SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG để biết thông tin về
thiết lập và bỏ thiết lập các tùy chọn shell.

LỊCH SỬ SỰ BÀNH TRƯỚNG


Trình bao hỗ trợ tính năng mở rộng lịch sử tương tự như tính năng mở rộng lịch sử trong
csh. Phần này mô tả các tính năng cú pháp có sẵn. Tính năng này được kích hoạt
theo mặc định cho các trình bao tương tác và có thể bị vô hiệu hóa bằng cách sử dụng +H tùy chọn cho định
lệnh nội trang (xem SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG phía dưới). Các trình bao không tương tác không hoạt động
mở rộng lịch sử theo mặc định.

Mở rộng lịch sử giới thiệu các từ từ danh sách lịch sử vào luồng đầu vào, làm cho nó
dễ dàng lặp lại các lệnh, chèn các đối số của lệnh trước đó vào đầu vào hiện tại
hoặc sửa lỗi trong các lệnh trước đó một cách nhanh chóng.

Mở rộng lịch sử được thực hiện ngay lập tức sau khi một dòng hoàn chỉnh được đọc, trước khi trình bao
ngắt nó thành lời. Nó diễn ra trong hai phần. Đầu tiên là xác định dòng nào
từ danh sách lịch sử để sử dụng trong quá trình thay thế. Thứ hai là chọn các phần của
dòng đó để đưa vào dòng hiện tại. Dòng được chọn từ lịch sử là
sự kiệnvà các phần của dòng đó được thực hiện từ. Khác nhau bổ ngữ đang
có sẵn để thao tác với các từ đã chọn. Dòng được chia thành các từ giống nhau
thời trang như khi đọc đầu vào, vì vậy một số siêu nhân vật-các từ được phân tách được bao quanh bởi
dấu ngoặc kép được coi là một từ. Mở rộng lịch sử được giới thiệu bởi sự xuất hiện của
nhân vật mở rộng lịch sử, đó là ! theo mặc định. Chỉ dấu gạch chéo ngược (\) và độc thân
dấu ngoặc kép có thể trích dẫn nhân vật mở rộng lịch sử.

Một số ký tự ngăn cản việc mở rộng lịch sử nếu được tìm thấy ngay sau lịch sử
ký tự mở rộng, ngay cả khi nó không được trích dẫn: dấu cách, tab, dòng mới, ký tự xuống dòng và =.
Nếu extglob tùy chọn shell được kích hoạt, ( cũng sẽ kìm hãm sự mở rộng.

Một số tùy chọn vỏ có thể cài đặt với xô đẩy nội trang có thể được sử dụng để điều chỉnh hành vi
của lịch sử mở rộng. Nếu xác minh lịch sử tùy chọn shell được kích hoạt (xem mô tả của
các xô đẩy nội trang bên dưới), và đường dẫn đang được sử dụng, thay thế lịch sử thì không
ngay lập tức được chuyển đến trình phân tích cú pháp shell. Thay vào đó, dòng mở rộng được tải lại vào
đường dẫn chỉnh sửa bộ đệm để sửa đổi thêm. Nếu đường dẫn đang được sử dụng, và
lịch sử tùy chọn shell được bật, quá trình thay thế lịch sử không thành công sẽ được tải lại vào
các đường dẫn chỉnh sửa bộ đệm để hiệu chỉnh. Các -p tùy chọn cho lịch sử lệnh nội trang
có thể được sử dụng để xem mở rộng lịch sử sẽ làm gì trước khi sử dụng nó. Các -s tùy chọn cho
lịch sử nội trang có thể được sử dụng để thêm lệnh vào cuối danh sách lịch sử mà không
thực sự thực hiện chúng, để chúng có sẵn cho việc thu hồi tiếp theo.

Vỏ cho phép kiểm soát các ký tự khác nhau được sử dụng bởi cơ chế mở rộng lịch sử
(xem mô tả của biểu đồ trên dưới Shell Biến). Vỏ sử dụng
ký tự nhận xét lịch sử để đánh dấu dấu thời gian lịch sử khi ghi tệp lịch sử.

Sự kiện Nhà thiết kế
Bộ chỉ định sự kiện là một tham chiếu đến mục nhập dòng lệnh trong danh sách lịch sử. Trừ phi
tham chiếu là tuyệt đối, các sự kiện liên quan đến vị trí hiện tại trong lịch sử
danh sách.

! Bắt đầu thay thế lịch sử, ngoại trừ khi được theo sau bởi trống, dòng mới, vận chuyển
return, = hoặc ((khi extglob tùy chọn shell được bật bằng cách sử dụng xô đẩy được xây dựng trong).
!n Tham khảo dòng lệnh n.
!-n Tham khảo lệnh hiện tại trừ n.
!! Tham khảo lệnh trước. Đây là từ đồng nghĩa với `! -1 '.
!chuỗi
Tham khảo lệnh gần đây nhất trước vị trí hiện tại trong danh sách lịch sử
bắt đầu với chuỗi.
!?chuỗi[?]
Tham khảo lệnh gần đây nhất trước vị trí hiện tại trong danh sách lịch sử
chứa chuỗi. Dấu vết ? có thể được bỏ qua nếu chuỗi được theo dõi ngay lập tức
bởi một dòng mới.
^chuỗi1^chuỗi2^
Thay thế nhanh chóng. Lặp lại lệnh trước đó, thay thế chuỗi1 với chuỗi2.
Tương đương với `` !!: s /chuỗi1/chuỗi2/'' (thấy Bổ ngữ dưới đây).
!# Toàn bộ dòng lệnh được gõ cho đến nay.

Từ Nhà thiết kế
Bộ chỉ định từ được sử dụng để chọn các từ mong muốn từ sự kiện. MỘT : tách sự kiện ra
đặc điểm kỹ thuật từ chỉ định từ. Nó có thể bị bỏ qua nếu từ chỉ định bắt đầu
với một ^, $, *, -, hoặc là %. Các từ được đánh số từ đầu dòng, với
từ đầu tiên được ký hiệu bằng 0 (không). Các từ được chèn vào dòng hiện tại được phân tách
bởi các khoảng trắng.

0 (số không)
Từ thứ không. Đối với shell, đây là từ lệnh.
n Sản phẩm ntừ thứ.
^ Đối số đầu tiên. Đó là, từ 1.
$ Lời cuối. Đây thường là đối số cuối cùng, nhưng sẽ mở rộng đến số XNUMX
từ nếu chỉ có một từ trong dòng.
% Từ được so khớp bởi dấu gần đây nhất '?chuỗi? ' Tìm kiếm.
x-y Một loạt các từ; `-y'viết tắt' 0-y'.
* Tất cả các từ trừ con số không. Đây là từ đồng nghĩa với `1- $'. Nó không phải là một lỗi
sử dụng * nếu chỉ có một từ trong sự kiện; chuỗi trống được trả về
trường hợp.
x* Viết tắt x- $.
x- Viết tắt x- $ Lượt thích x*, nhưng bỏ qua từ cuối cùng.

Nếu một bộ chỉ định từ được cung cấp mà không có đặc tả sự kiện, thì lệnh trước đó là
được sử dụng như sự kiện.

Bổ ngữ
Sau bộ chỉ định từ tùy chọn, có thể xuất hiện một chuỗi gồm một hoặc nhiều
các bổ ngữ sau, mỗi bổ ngữ đứng trước dấu `: '.

h Loại bỏ một thành phần tên tệp theo sau, chỉ để lại phần đầu.
t Loại bỏ tất cả các thành phần tên tệp ở đầu, để lại phần đuôi.
r Xóa hậu tố ở cuối biểu mẫu .xxx, rời khỏi tên cơ sở.
e Loại bỏ tất cả trừ hậu tố ở cuối.
p In lệnh mới nhưng không thực hiện nó.
q Trích dẫn các từ được thay thế, thoát khỏi các từ thay thế khác.
x Trích dẫn các từ được thay thế như với q, nhưng ngắt thành lời tại khoảng trống và các dòng mới.
s/xưa/mới/
Thay thế mới cho lần xuất hiện đầu tiên của xưa trong dòng sự kiện. Bất kỳ dấu phân cách nào
có thể được sử dụng thay cho /. Dấu phân cách cuối cùng là tùy chọn nếu nó là dấu cuối cùng
nhân vật của dòng sự kiện. Dấu phân cách có thể được trích dẫn trong xưamới với một
dấu gạch chéo ngược đơn. Nếu & xuất hiện trong mới, nó được thay thế bằng xưa. Một dấu gạch chéo ngược
sẽ trích dẫn &. Nếu xưa là null, nó được đặt thành cuối cùng xưa được thay thế, hoặc, nếu không
thay thế lịch sử trước đây đã diễn ra, lần cuối cùng chuỗi trong một !?chuỗi[?]
tìm kiếm.
& Lặp lại sự thay thế trước đó.
g Vì các thay đổi được áp dụng trên toàn bộ dòng sự kiện. Điều này được sử dụng trong
kết hợp với `:s'(ví dụ: `: gs /xưa/mới/') hoặc':&'. Nếu được sử dụng với `:s', bất cứ
Dấu phân tách có thể được sử dụng thay cho / và dấu phân cách cuối cùng là tùy chọn nếu nó là
ký tự cuối cùng của dòng sự kiện. Một a có thể được sử dụng như một từ đồng nghĩa với g.
G Áp dụng những điều sau đâys'bổ ngữ một lần cho mỗi từ trong dòng sự kiện.

SHELL ĐƯỢC XÂY DỰNG TRONG HÀNG


Trừ khi có ghi chú khác, mỗi lệnh nội trang được ghi lại trong phần này là chấp nhận
các tùy chọn đứng trước - chấp nhận -- để biểu thị sự kết thúc của các tùy chọn. Các :, đúng, sai,
thử nghiệm nội trang không chấp nhận các tùy chọn và không điều trị -- đặc biệt. Các ra, đăng xuất,
phá vỡ, tiếp tục, cho phépthay đổi nội trang chấp nhận và xử lý các đối số bắt đầu bằng -
không yêu cầu --. Các nội trang khác chấp nhận các đối số nhưng không được chỉ định là
chấp nhận các tùy chọn giải thích các đối số bắt đầu bằng - là các tùy chọn không hợp lệ và yêu cầu --
để ngăn cản sự diễn giải này.
: [đối số]
Không có hiệu lực; lệnh không làm gì khác ngoài việc mở rộng đối số và thực hiện bất kỳ
chuyển hướng được chỉ định. Một mã thoát XNUMX được trả về.

. tên tập tin [đối số]
nguồn tên tập tin [đối số]
Đọc và thực hiện các lệnh từ tên tập tin trong môi trường shell hiện tại và quay trở lại
trạng thái thoát của lệnh cuối cùng được thực thi từ tên tập tin. Nếu tên tập tin không
chứa một dấu gạch chéo, tên tệp trong PATH được sử dụng để tìm thư mục chứa
tên tập tin. Tệp được tìm kiếm trong PATH không cần phải thực thi. Khi nào bash không phải là
in posix chế độ, thư mục hiện tại được tìm kiếm nếu không tìm thấy tệp nào trong PATH. Nếu
các chua ngoa tùy chọn cho xô đẩy lệnh nội trang bị tắt, PATH không phải là
đã tìm kiếm. Nếu có đối số được cung cấp, chúng trở thành các tham số vị trí
khi nào tên tập tin được thực thi. Nếu không, các tham số vị trí không thay đổi. Các
trạng thái trả về là trạng thái của lệnh cuối cùng được thoát trong tập lệnh (0 nếu không
lệnh được thực thi) và false nếu tên tập tin không được tìm thấy hoặc không thể đọc được.

bí danh [-p] [tên[=giá trị] ...]
tên giả không có đối số hoặc với -p tùy chọn in danh sách các bí danh trong
hình thức bí danh tên=giá trị trên đầu ra tiêu chuẩn. Khi các đối số được cung cấp, một bí danh là
được xác định cho mỗi têngiá trị được đưa ra. Khoảng trống ở cuối giá trị gây ra
từ tiếp theo được kiểm tra để thay thế bí danh khi bí danh được mở rộng. Vì
mỗi tên trong danh sách đối số mà không có giá trị được cung cấp, tên và giá trị
của bí danh được in. tên giả trả về true trừ khi tên được cho mà không
bí danh đã được xác định.

bg [đặc tả công việc ...]
Tiếp tục từng công việc bị tạm dừng đặc tả công việc trong nền, như thể nó đã được bắt đầu với
&. Nếu đặc tả công việc không có mặt, khái niệm của shell về hiện hành việc làm Được sử dụng. bg
đặc tả công việc trả về 0 trừ khi chạy khi kiểm soát công việc bị vô hiệu hóa hoặc khi chạy với công việc
kiểm soát được bật, bất kỳ được chỉ định nào đặc tả công việc không được tìm thấy hoặc đã bắt đầu mà không có việc làm
kiểm soát.

ràng buộc [-m bản đồ bàn phím] [-lpsvPSVX]
ràng buộc [-m bản đồ bàn phím] [-q chức năng] [-u chức năng] [-r keyseq]
ràng buộc [-m bản đồ bàn phím] -f tên tập tin
ràng buộc [-m bản đồ bàn phím] -x keyseq:lệnh shell
ràng buộc [-m bản đồ bàn phím] keyseq:Tên chức năng
ràng buộc đọc-lệnh
Hiển thị hiện tại đường dẫn liên kết khóa và chức năng, liên kết chuỗi khóa với một
đường dẫn hàm hoặc macro, hoặc đặt một đường dẫn Biến đổi. Mỗi đối số không phải tùy chọn
là một lệnh như nó sẽ xuất hiện trong .inputrc, nhưng mỗi ràng buộc hoặc lệnh phải
được truyền như một đối số riêng biệt; ví dụ: '"\ Cx \ Cr": re-read-init-file ". Tùy chọn, nếu
được cung cấp, có các nghĩa sau:
-m bản đồ bàn phím
Sử dụng bản đồ bàn phím như sơ đồ bàn phím sẽ bị ảnh hưởng bởi các ràng buộc tiếp theo.
Chấp nhận được bản đồ bàn phím tên là emac, emacs-tiêu chuẩn, emacs-meta, emacs-ctlx,
vi, vi-di chuyển, lệnh vivi-chèn. vi tương đương với lệnh vi;
emacs tương đương với emacs-tiêu chuẩn.
-l Liệt kê tên của tất cả đường dẫn chức năng.
-p Giao diện đường dẫn tên hàm và các ràng buộc theo cách mà chúng có thể
đọc lại.
-P Liệt kê hiện tại đường dẫn tên hàm và các ràng buộc.
-s Giao diện đường dẫn chuỗi khóa liên kết với macro và chuỗi mà chúng xuất ra
theo cách mà chúng có thể được đọc lại.
-S Giao diện đường dẫn chuỗi khóa liên kết với macro và chuỗi mà chúng xuất ra.
-v Giao diện đường dẫn tên và giá trị biến theo cách mà chúng có thể
đọc lại.
-V Liệt kê hiện tại đường dẫn tên và giá trị biến.
-f tên tập tin
Đọc các ràng buộc chính từ tên tập tin.
-q chức năng
Truy vấn về những khóa nào gọi tên chức năng.
-u chức năng
Hủy liên kết tất cả các khóa liên kết với tên được đặt tên chức năng.
-r keyseq
Xóa mọi ràng buộc hiện tại cho keyseq.
-x keyseq:lệnh shell
Nguyên nhân lệnh shell được thực hiện bất cứ khi nào keyseq được nhập. Khi nào
lệnh shell được thực thi, shell thiết lập READLINE_LINE biến thành
nội dung của đường dẫn bộ đệm dòng và READLINE_POINT biến thành
vị trí hiện tại của điểm chèn. Nếu lệnh được thực thi thay đổi
giá trị của READLINE_LINE or READLINE_POINT, những giá trị mới đó sẽ là
được phản ánh trong trạng thái chỉnh sửa.
-X Liệt kê tất cả các chuỗi khóa liên kết với các lệnh shell và các lệnh liên quan
ở định dạng có thể được sử dụng lại làm đầu vào.

Giá trị trả về là 0 trừ khi có tùy chọn không được công nhận hoặc xảy ra lỗi.

phá vỡ [n]
Thoát từ trong cho, trong khi, cho đến khi, hoặc là chọn vòng. Nếu như n được chỉ định, phá vỡ n
các cấp. n phải ≥ 1. Nếu n lớn hơn số lượng vòng lặp, tất cả
vòng lặp bao vây được thoát. Giá trị trả về là 0 trừ khi n không lớn hơn hoặc
bằng 1.

được xây dựng trong shell-nội trang [đối số]
Thực thi nội trang shell được chỉ định, chuyển nó đối sốvà trả lại lối ra của nó
trạng thái. Điều này rất hữu ích khi xác định một hàm có tên giống với một shell
nội trang, giữ lại chức năng của nội trang trong chức năng. Các cd
nội trang thường được định nghĩa lại theo cách này. Trạng thái trả lại là sai nếu
shell-nội trang không phải là một lệnh nội trang của trình bao.

người gọi [thể hiện]
Trả về ngữ cảnh của bất kỳ lệnh gọi chương trình con nào đang hoạt động (một hàm shell hoặc một tập lệnh
thực hiện với . or nguồn nội trang). Không có thể hiện, người gọi hiển thị dòng
số và tên tệp nguồn của lệnh gọi chương trình con hiện tại. Nếu không âm
số nguyên được cung cấp dưới dạng thể hiện, người gọi hiển thị số dòng, tên chương trình con và
tệp nguồn tương ứng với vị trí đó trong ngăn xếp cuộc gọi thực thi hiện tại.
Thông tin bổ sung này có thể được sử dụng, ví dụ, để in dấu vết ngăn xếp. Các
khung hiện tại là khung 0. Giá trị trả về là 0 trừ khi trình bao không thực thi
một cuộc gọi chương trình con hoặc thể hiện không tương ứng với một vị trí hợp lệ trong cuộc gọi
cây rơm.

cd [-L|[-P [-e]] [- @]] [dir]
Thay đổi thư mục hiện tại thành dir. nếu dir không được cung cấp, giá trị của TRANG CHỦ
biến shell là mặc định. Bất kỳ đối số bổ sung nào sau đây dir bị bỏ qua.
Biến CDPATH xác định đường dẫn tìm kiếm cho thư mục chứa dir: mỗi
tên thư mục trong CDPATH được tìm kiếm dir. Tên thư mục thay thế trong
CDPATH được phân tách bằng dấu hai chấm (:). Tên thư mục rỗng trong CDPATH là giống nhau
như thư mục hiện tại, tức là,.''. Nếu dir bắt đầu bằng dấu gạch chéo (/), sau đó CDPATH
Không được sử dụng. Các -P nguyên nhân tùy chọn cd sử dụng cấu trúc thư mục vật lý bằng cách
giải quyết các liên kết tượng trưng trong khi đi qua dir và trước khi xử lý các phiên bản của ..
in dir (xem thêm -P tùy chọn cho định lệnh nội trang); các -L lực lượng tùy chọn
các liên kết tượng trưng sẽ được theo sau bằng cách giải quyết liên kết sau khi xử lý các trường hợp của
.. in dir. Nếu .. xuất hiện trong dir, nó được xử lý bằng cách xóa ngay lập tức
thành phần tên đường dẫn trước đó từ dir, quay lại dấu gạch chéo hoặc phần đầu của dir. Nếu
các -e tùy chọn được cung cấp với -Pvà thư mục làm việc hiện tại không được
xác định thành công sau khi thay đổi thư mục thành công, cd sẽ trả lại một
tình trạng không thành công. Trên các hệ thống hỗ trợ nó, -@ tùy chọn trình bày
các thuộc tính mở rộng được liên kết với một tệp dưới dạng một thư mục. Một đối số của - is
chuyển đổi thành $ OLDPWD trước khi thay đổi thư mục được cố gắng. Nếu không trống
tên thư mục từ CDPATH được sử dụng, hoặc nếu - là đối số đầu tiên và
thay đổi thư mục thành công, tên đường dẫn tuyệt đối của thư mục làm việc mới
được ghi vào đầu ra tiêu chuẩn. Giá trị trả về là true nếu thư mục là
Thay đổi thành công; sai khác.

lệnh [-pVv] lệnh [arg ...]
chạy lệnh với args. ngăn chặn việc tra cứu chức năng shell bình thường. Chỉ nội trang
các lệnh hoặc lệnh được tìm thấy trong PATH được thực hiện. Nếu -p tùy chọn được đưa ra,
tìm kiếm cho lệnh được thực hiện bằng cách sử dụng giá trị mặc định cho PATH đó là
đảm bảo tìm thấy tất cả các tiện ích tiêu chuẩn. Nếu một trong hai -V or -v Tùy chọn là
được cung cấp, một mô tả về lệnh được in. Các -v tùy chọn gây ra một từ duy nhất
chỉ ra lệnh hoặc tên tệp được sử dụng để gọi lệnh được hiển thị; các -V
tùy chọn tạo ra một mô tả chi tiết hơn. Nếu -V or -v tùy chọn được cung cấp,
trạng thái thoát là 0 nếu lệnh đã được tìm thấy, và 1 nếu không. Nếu cả hai lựa chọn đều không
đã cung cấp và xảy ra lỗi hoặc lệnh không tìm thấy, trạng thái thoát là 127.
Nếu không, trạng thái thoát của lệnh nội trang là trạng thái thoát của lệnh.

tổng hợp [tùy chọn] [lời]
Tạo các kết quả phù hợp hoàn thành có thể có cho lời theo tùy chọns, có thể
là bất kỳ tùy chọn nào được chấp nhận bởi hoàn thành nội trang ngoại trừ -p-r
ghi các kết quả phù hợp với đầu ra tiêu chuẩn. Khi sử dụng -F or -C các tùy chọn,
các biến shell khác nhau được thiết lập bởi các phương tiện hoàn thành có thể lập trình, trong khi
có sẵn, sẽ không có giá trị hữu ích.

Các kết quả phù hợp sẽ được tạo theo cách tương tự như khi hoàn thành có thể lập trình
mã đã tạo chúng trực tiếp từ một thông số kỹ thuật hoàn thành với cùng một
cờ. Nếu như lời được chỉ định, chỉ những phần hoàn chỉnh mới phù hợp lời sẽ được
hiển thị.

Giá trị trả về là true trừ khi một tùy chọn không hợp lệ được cung cấp hoặc không có kết quả phù hợp nào
được tạo ra.

hoàn thành [-abcdefgjksuv] [-o tùy chọn comp] [-DE] [-A hoạt động] [-G quả cầu] [-W danh sách các từ] [-F
chức năng] [-C lệnh]
[-X bộ lọc] [-P tiếp đầu ngữ] [-S hậu tố] tên [tên hữu ích. Cảm ơn !]
hoàn thành -pr [-DE] [tên ...]
Chỉ định cách đối số cho mỗi tên nên được hoàn thành. Nếu -p Tùy chọn là
được cung cấp hoặc nếu không có tùy chọn nào được cung cấp, các thông số kỹ thuật hoàn thành hiện có là
được in theo cách cho phép chúng được sử dụng lại làm đầu vào. Các -r tùy chọn loại bỏ một
đặc điểm kỹ thuật hoàn thành cho mỗi tênhoặc, nếu không têns được cung cấp, tất cả
thông số kỹ thuật hoàn thành. Các -D tùy chọn cho biết rằng các tùy chọn còn lại và
các hành động sẽ áp dụng cho việc hoàn thành lệnh `` mặc định ''; nghĩa là, sự hoàn thành
đã cố gắng thực hiện một lệnh mà không có hoàn thành nào đã được xác định trước đó. Các -E
tùy chọn cho biết rằng các tùy chọn và hành động còn lại sẽ áp dụng cho `` trống ''
hoàn thành lệnh; nghĩa là, đã cố gắng hoàn thành trên một dòng trống.

Quá trình áp dụng các thông số kỹ thuật hoàn thành này khi hoàn thành từ là
cố gắng được mô tả ở trên dưới Programmable Hoàn thành.

Các tùy chọn khác, nếu được chỉ định, có các ý nghĩa sau. Các đối số cho -G,
-W-X các tùy chọn (và, nếu cần, -P-S tùy chọn) nên được trích dẫn để
bảo vệ chúng khỏi sự mở rộng trước khi hoàn thành nội trang được gọi.
-o tùy chọn comp
Sản phẩm tùy chọn comp kiểm soát một số khía cạnh của hành vi của compspec ngoài
thế hệ hoàn chỉnh đơn giản. tùy chọn comp có thể là một trong số:
bashdefault
Thực hiện phần còn lại của mặc định bash hoàn thành nếu compspec
không tạo ra kết quả phù hợp.
mặc định Sử dụng hoàn thành tên tệp mặc định của readline nếu compspec
không tạo ra kết quả phù hợp.
tên
Thực hiện hoàn thành tên thư mục nếu compspec tạo ra không
diêm.
tên tập tin
Nói với readline rằng compspec tạo ra các tên tệp, vì vậy nó có thể
thực hiện bất kỳ xử lý nào dành riêng cho tên tệp (như thêm dấu gạch chéo vào
tên thư mục, trích dẫn các ký tự đặc biệt hoặc ngăn chặn
dấu cách). Dự định được sử dụng với các chức năng của trình bao.
trích dẫn Yêu cầu người đọc không trích dẫn các từ đã hoàn thành nếu chúng
tên tệp (trích dẫn tên tệp là mặc định).
không có không gian Yêu cầu dòng đọc không nối khoảng trắng (mặc định) vào các từ
hoàn thành ở cuối dòng.
plusdirs
Sau khi bất kỳ kết quả phù hợp nào được định nghĩa bởi compspec được tạo, thư mục
hoàn thành tên được cố gắng và bất kỳ kết quả phù hợp nào được thêm vào
kết quả của các hành động khác.
-A hoạt động
Sản phẩm hoạt động có thể là một trong những điều sau đây để tạo ra một danh sách có thể
hoàn thành:
bí danh Tên bí danh. Cũng có thể được chỉ định là -a.
mảng
Tên biến mảng.
ràng buộc Đường dây đọc tên ràng buộc chính.
được xây dựng trong Tên của các lệnh nội trang trình bao. Cũng có thể được chỉ định là -b.
lệnh Tên lệnh. Cũng có thể được chỉ định là -c.
thư mục
Tên thư mục. Cũng có thể được chỉ định là -d.
bị vô hiệu hóa
Tên của nội trang vỏ bị vô hiệu hóa.
kích hoạt Tên của các nội trang vỏ được kích hoạt.
xuất khẩu Tên của các biến shell đã xuất. Cũng có thể được chỉ định là -e.
hồ sơ Tên tệp. Cũng có thể được chỉ định là -f.
chức năng
Tên của các hàm shell.
nhóm Tên nhóm. Cũng có thể được chỉ định là -g.
chủ đề giúp đỡ
Các chủ đề trợ giúp được chấp nhận bởi giúp đỡ được xây dựng trong.
hostname
Tên máy chủ, được lấy từ tệp được chỉ định bởi MÁY CHỦ shell
biến.
việc làm Tên công việc, nếu kiểm soát công việc đang hoạt động. Cũng có thể được chỉ định là -j.
từ khóa Shell từ dành riêng. Cũng có thể được chỉ định là -k.
chạy Tên của các công việc đang chạy, nếu kiểm soát công việc đang hoạt động.
dịch vụ Tên dịch vụ. Cũng có thể được chỉ định là -s.
Setopt. Đối số hợp lệ cho -o tùy chọn cho định được xây dựng trong.
xô đẩy Các tên tùy chọn Shell được chấp nhận bởi xô đẩy được xây dựng trong.
tín hiệu Tên các tín hiệu.
dừng lại Tên của các công việc đã dừng, nếu kiểm soát công việc đang hoạt động.
người sử dụng Tên người dùng. Cũng có thể được chỉ định là -u.
biến
Tên của tất cả các biến shell. Cũng có thể được chỉ định là -v.
-C lệnh
lệnh được thực thi trong môi trường vỏ con và đầu ra của nó được sử dụng như
các hoàn thành có thể.
-F chức năng
Hàm shell chức năng được thực thi trong môi trường shell hiện tại.
Khi hàm được thực thi, đối số đầu tiên ($1) là tên của
lệnh có các đối số đang được hoàn thành, đối số thứ hai ($2) là
từ đang được hoàn thành và đối số thứ ba ($3) là từ đứng trước
từ đang được hoàn thành trên dòng lệnh hiện tại. Khi nó kết thúc,
các lần hoàn thành có thể được truy xuất từ ​​giá trị của HOÀN TOÀN
biến mảng.
-G quả cầu
Mẫu mở rộng tên đường dẫn quả cầu được mở rộng để tạo ra những thứ có thể
hoàn thành.
-P tiếp đầu ngữ
tiếp đầu ngữ được thêm vào đầu mỗi lần hoàn thành có thể có
các tùy chọn khác đã được áp dụng.
-S hậu tố
hậu tố được thêm vào mỗi lần hoàn thành có thể có sau khi tất cả các tùy chọn khác có
đã được áp dụng.
-W danh sách các từ
Sản phẩm danh sách các từ được phân tách bằng cách sử dụng các ký tự trong IFS biến đặc biệt là
dấu phân cách và mỗi từ kết quả được mở rộng. Các hoàn thành có thể
là các thành viên của danh sách kết quả khớp với từ đang được hoàn thành.
-X bộ lọc
bộ lọc là một mẫu được sử dụng để mở rộng tên đường dẫn. Nó được áp dụng cho
danh sách các lần hoàn thành có thể được tạo bởi các tùy chọn trước đó và
đối số và từng kết quả khớp hoàn thành bộ lọc bị xóa khỏi danh sách.
Một sự dẫn đầu ! in bộ lọc phủ định khuôn mẫu; trong trường hợp này, bất kỳ sự hoàn thành nào
không khớp bộ lọc bị xóa.

Giá trị trả về là true trừ khi một tùy chọn không hợp lệ được cung cấp, một tùy chọn khác
-p or -r được cung cấp mà không có tên đối số, một nỗ lực được thực hiện để loại bỏ một
đặc điểm kỹ thuật hoàn thành cho một tên mà không có thông số kỹ thuật nào tồn tại hoặc có lỗi
xảy ra thêm một thông số kỹ thuật hoàn thành.

hỗn hợp [-o tùy chọn] [-DE] [+o tùy chọn] [tên]
Sửa đổi các tùy chọn hoàn thành cho từng tên theo tùy chọns, hoặc cho
hiện đang thực hiện hoàn thành nếu không têns được cung cấp. Nếu không tùy chọns được đưa ra,
hiển thị các tùy chọn hoàn thành cho mỗi tên hoặc sự hoàn thành hiện tại. Các
giá trị có thể có của tùy chọn những cái đó có giá trị cho hoàn thành nội trang được mô tả ở trên.
Sản phẩm -D tùy chọn chỉ ra rằng các tùy chọn còn lại sẽ áp dụng cho `` mặc định ''
hoàn thành lệnh; nghĩa là, đã cố gắng hoàn thành một lệnh mà không
hoàn thành đã được xác định trước đó. Các -E tùy chọn chỉ ra rằng phần còn lại
các tùy chọn sẽ áp dụng cho việc hoàn thành lệnh `` trống ''; nghĩa là, đã cố gắng hoàn thành
trên một dòng trống.

Giá trị trả về là true trừ khi một tùy chọn không hợp lệ được cung cấp, một nỗ lực được thực hiện
để sửa đổi các tùy chọn cho một tên mà không có thông số kỹ thuật hoàn thành tồn tại, hoặc
một lỗi đầu ra xảy ra.

tiếp tục [n]
Tiếp tục lặp lại tiếp theo của phần bao quanh cho, trong khi, cho đến khi, hoặc là chọn vòng. Nếu như n
được chỉ định, tiếp tục tại nvòng lặp thứ. n phải ≥ 1. Nếu n lớn hơn
so với số lượng vòng lặp bao quanh, vòng lặp bao quanh cuối cùng (`` cấp cao nhất ''
vòng lặp) được tiếp tục. Giá trị trả về là 0 trừ khi n không lớn hơn hoặc bằng
1.

khai [-aAfFgilnrtux] [-p] [tên[=giá trị] ...]
bộ sắp chữ [-aAfFgilnrtux] [-p] [tên[=giá trị] ...]
Khai báo các biến và / hoặc cung cấp cho chúng các thuộc tính. Nếu không têns được đưa ra sau đó hiển thị
giá trị của các biến. Các -p tùy chọn sẽ hiển thị các thuộc tính và giá trị của
mỗi tên. Khi nào -p được sử dụng với tên đối số, tùy chọn bổ sung, ngoài -f
-F, bị bỏ qua. Khi nào -p được cung cấp mà không có tên đối số, nó sẽ hiển thị
các thuộc tính và giá trị của tất cả các biến có thuộc tính được chỉ định bởi
tùy chọn bổ sung. Nếu không có tùy chọn nào khác được cung cấp với -p, khai sẽ hiển thị
các thuộc tính và giá trị của tất cả các biến shell. Các -f tùy chọn sẽ hạn chế
hiển thị sang các chức năng shell. Các -F tùy chọn hạn chế hiển thị chức năng
định nghĩa; chỉ có tên hàm và các thuộc tính được in. Nếu người tống tiền
tùy chọn shell được kích hoạt bằng cách sử dụng xô đẩy, tên tệp nguồn và số dòng trong đó
chức năng được xác định cũng được hiển thị. Các -F tùy chọn ngụ ý -f. Các -g
tùy chọn buộc các biến phải được tạo hoặc sửa đổi ở phạm vi toàn cục, ngay cả khi
khai được thực thi trong một hàm shell. Nó được bỏ qua trong tất cả các trường hợp khác. Các
các tùy chọn sau có thể được sử dụng để hạn chế đầu ra cho các biến có
thuộc tính hoặc để cung cấp các thuộc tính biến:
-a Mỗi trang web tên là một biến mảng được lập chỉ mục (xem Mảng ở trên).
-A Mỗi trang web tên là một biến mảng kết hợp (xem Mảng ở trên).
-f Chỉ sử dụng tên chức năng.
-i Biến được coi là một số nguyên; đánh giá số học (xem MÔN SỐ HỌC
ĐÁNH GIÁ ở trên) được thực hiện khi biến được gán một giá trị.
-l Khi biến được gán một giá trị, tất cả các ký tự viết hoa
được chuyển đổi thành chữ thường. Thuộc tính chữ hoa bị tắt.
-n Cho mỗi tên các tên giới thiệu , làm cho nó trở thành một tham chiếu tên đến một thuộc tính khác
Biến đổi. Biến khác đó được xác định bởi giá trị của tên. Tất cả
tham chiếu và gán cho tên, ngoại trừ việc thay đổi -n thuộc tính
chính nó, được thực hiện trên biến được tham chiếu bởi têngiá trị của. Các -n
không thể áp dụng thuộc tính cho các biến mảng.
-r Hãy têns chỉ đọc. Những tên này sau đó không thể được gán giá trị bởi
câu lệnh gán tiếp theo hoặc bỏ đặt.
-t Cho mỗi tên các theo dõi thuộc tính. Các hàm đã theo dõi kế thừa DEBUG
TRỞ VỀ bẫy từ trình bao gọi. Thuộc tính dấu vết không có gì đặc biệt
ý nghĩa cho các biến.
-u Khi biến được gán một giá trị, tất cả các ký tự viết thường
được chuyển đổi thành chữ hoa. Thuộc tính chữ thường bị tắt.
-x Đánh dấu têns để xuất sang các lệnh tiếp theo thông qua môi trường.

Thay vào đó, việc sử dụng `+ 'thay vì` -' sẽ tắt thuộc tính, với các trường hợp ngoại lệ
+a có thể không được sử dụng để hủy một biến mảng và +r sẽ không loại bỏ chỉ đọc
thuộc tính. Khi được sử dụng trong một hàm, khaibộ sắp chữ làm cho mỗi tên địa phương, như
với địa phương lệnh, trừ khi -g tùy chọn được cung cấp. Nếu một tên biến là
tiếp theo là =giá trị, giá trị của biến được đặt thành giá trị. Khi đang sử dụng -a or -A
và cú pháp gán ghép để tạo biến mảng, các thuộc tính bổ sung
không có hiệu lực cho đến các nhiệm vụ tiếp theo. Giá trị trả về là 0 trừ khi một
gặp phải tùy chọn không hợp lệ, một nỗ lực được thực hiện để xác định một hàm bằng cách sử dụng `` -f
foo = bar '', một nỗ lực được thực hiện để gán một giá trị cho một biến chỉ đọc, một nỗ lực
được thực hiện để gán một giá trị cho một biến mảng mà không sử dụng phức hợp
cú pháp gán (xem Mảng ở trên), một trong những tên không phải là một vỏ hợp lệ
tên biến, một nỗ lực được thực hiện để tắt trạng thái chỉ đọc cho một
, một nỗ lực được thực hiện để tắt trạng thái mảng cho một biến mảng hoặc
cố gắng hiển thị một hàm không tồn tại với -f.

dirs [-clpv] [+n] [-n]
Không có tùy chọn, hiển thị danh sách các thư mục hiện được nhớ. Các
màn hình mặc định nằm trên một dòng với các tên thư mục được phân tách bằng dấu cách.
Các thư mục được thêm vào danh sách với pushd chỉ huy; NS popd lệnh loại bỏ
các mục từ danh sách.
-c Xóa ngăn xếp thư mục bằng cách xóa tất cả các mục nhập.
-l Tạo danh sách bằng cách sử dụng tên đường dẫn đầy đủ; định dạng danh sách mặc định sử dụng
dấu ngã để biểu thị thư mục chính.
-p In ngăn xếp thư mục với một mục nhập trên mỗi dòng.
-v In ngăn xếp thư mục với một mục nhập trên mỗi dòng, bắt đầu mỗi mục nhập bằng
chỉ mục của nó trong ngăn xếp.
+n Hiển thị nmục nhập thứ đếm từ bên trái của danh sách được hiển thị bởi dirs khi nào
được gọi mà không có tùy chọn, bắt đầu bằng số không.
-n Hiển thị nmục nhập thứ đếm từ bên phải của danh sách được hiển thị bởi dirs
khi được gọi mà không có tùy chọn, bắt đầu bằng số không.

Giá trị trả về là 0 trừ khi một tùy chọn không hợp lệ được cung cấp hoặc n các chỉ số vượt ra ngoài
cuối ngăn xếp thư mục.

không nhận [-ar] [-h] [đặc tả công việc ...]
Nếu không có tùy chọn, hãy xóa từng đặc tả công việc từ bảng các công việc đang hoạt động. Nếu đặc tả công việc is
không có mặt, và cũng không -a cũng không phải -r tùy chọn được cung cấp, hiện hành việc làm is
đã sử dụng. Nếu -h tùy chọn được đưa ra, mỗi đặc tả công việc không bị xóa khỏi bảng, nhưng
được đánh dấu để ĐĂNG KÍ không được gửi đến công việc nếu trình bao nhận được ĐĂNG KÍ. Nếu
Không đặc tả công việc được cung cấp, -a tùy chọn có nghĩa là loại bỏ hoặc đánh dấu tất cả các công việc; các -r
tùy chọn không có đặc tả công việc đối số hạn chế hoạt động đối với các công việc đang chạy. Sự trở lại
giá trị là 0 trừ khi đặc tả công việc không chỉ định một công việc hợp lệ.

bỏ lỡ [-neE] [arg ...]
Xuất ra args, được phân tách bằng dấu cách, theo sau là dòng mới. Tình trạng trả lại là
0 trừ khi xảy ra lỗi ghi. Nếu -n được chỉ định, dòng mới ở cuối là
bị đàn áp. Nếu -e tùy chọn được đưa ra, giải thích về dấu gạch chéo ngược sau-
các ký tự thoát được kích hoạt. Các -E tùy chọn vô hiệu hóa việc giải thích những
các ký tự thoát, ngay cả trên các hệ thống mà chúng được diễn giải theo mặc định. Các
xpg_echo tùy chọn shell có thể được sử dụng để xác định động có hay không bỏ lỡ
mở rộng các ký tự thoát này theo mặc định. bỏ lỡ không giải thích -- có nghĩa là
kết thúc của các tùy chọn. bỏ lỡ diễn giải các trình tự thoát sau:
\a cảnh báo (chuông)
\b BackSpace
\c ngăn chặn đầu ra hơn nữa
\e
\E một nhân vật trốn thoát
\f thức ăn dạng
\n dòng mới
\r vận chuyển trở lại
\t Tab ngang
\v tab dọc
\\ dấu gạch chéo ngược
\0nnn ký tự tám bit có giá trị là giá trị bát phân nnn (không đến ba
chữ số bát phân)
\xHH ký tự tám bit có giá trị là giá trị thập lục phân HH (một hoặc hai
chữ số hex)
\uHhhh ký tự Unicode (ISO / IEC 10646) có giá trị là giá trị thập lục phân
Hhhh (một đến bốn chữ số hex)
\UHHHHHHHHH
ký tự Unicode (ISO / IEC 10646) có giá trị là giá trị thập lục phân
HHHHHHHHH (một đến tám chữ số hex)

cho phép [-a] [-dnps] [-f tên tập tin] [tên ...]
Bật và tắt các lệnh shell nội trang. Vô hiệu hóa nội trang cho phép một đĩa
lệnh có cùng tên với nội trang shell được thực thi mà không có
chỉ định tên đường dẫn đầy đủ, mặc dù shell thường tìm kiếm nội trang
trước các lệnh đĩa. Nếu -n được sử dụng, mỗi tên bị vô hiệu hóa; nếu không thì, tên đang
đã được kích hoạt. Ví dụ, để sử dụng thử nghiệm nhị phân được tìm thấy thông qua PATH thay cho
phiên bản shell nội trang, chạy `` enable -n test ''. Các -f tùy chọn có nghĩa là tải mới
lệnh nội trang tên từ đối tượng được chia sẻ tên tập tin, trên các hệ thống hỗ trợ động
Đang tải. Các -d tùy chọn sẽ xóa một nội trang đã được tải trước đó với -f. Nếu không
tên các đối số được đưa ra, hoặc nếu -p tùy chọn được cung cấp, một danh sách các nội trang vỏ
được in. Không có đối số tùy chọn nào khác, danh sách bao gồm tất cả các trình bao được kích hoạt
nội trang. Nếu -n được cung cấp, chỉ những nội trang bị vô hiệu hóa mới được in. Nếu -a is
được cung cấp, danh sách được in bao gồm tất cả các nội dung, với dấu hiệu cho biết liệu hoặc
không phải từng được kích hoạt. Nếu -s được cung cấp, đầu ra bị hạn chế đối với POSIX
đặc biệt nội trang. Giá trị trả về là 0 trừ khi tên không phải là một nội trang shell hoặc
đã xảy ra lỗi khi tải nội trang mới từ một đối tượng được chia sẻ.

đánh giá [arg ...]
Sản phẩm args được đọc và nối với nhau thành một lệnh duy nhất. Lệnh này là
sau đó được shell đọc và thực thi, và trạng thái thoát của nó được trả về dưới dạng giá trị
of đánh giá. Nếu không có args., hoặc chỉ đối số rỗng, đánh giá trả về 0.

giám đốc điều hành [-cl] [-a tên] [lệnh [đối số]]
If lệnh được chỉ định, nó thay thế shell. Không có quy trình mới nào được tạo. Các
đối số trở thành đối số để lệnh. Nếu -l tùy chọn được cung cấp, vỏ
đặt dấu gạch ngang ở đầu đối số XNUMX được chuyển đến lệnh. Đây là
đăng nhập(1) không. Các -c nguyên nhân tùy chọn lệnh được thực thi với một sản phẩm trống
môi trường. Nếu như -a được cung cấp, vỏ vượt qua tên là đối số thứ XNUMX cho
lệnh được thực thi. Nếu lệnh không thể được thực thi vì một số lý do,
vỏ tương tác thoát ra, trừ khi thi hành án tùy chọn shell được kích hoạt. Trong đó
trường hợp, nó trả về thất bại. Một trình bao tương tác trả về lỗi nếu tệp không thể
được thực thi. Nếu lệnh không được chỉ định, bất kỳ chuyển hướng nào có hiệu lực trong
shell hiện tại và trạng thái trả về là 0. Nếu có lỗi chuyển hướng,
trạng thái trả lại là 1.

ra [n]
Làm cho trình bao thoát ra với trạng thái n. Nếu n bị bỏ qua, trạng thái thoát là
của lệnh cuối cùng được thực thi. Một cái bẫy trên EXIT được thực thi trước trình bao
chấm dứt.

xuất khẩu [-fn] [tên[=lời]] ...
xuất khẩu -p
Cung cấp tên được đánh dấu để xuất tự động sang môi trường của
các lệnh được thực hiện sau đó. Nếu -f tùy chọn được đưa ra, tên tham khảo
chức năng. Nếu không tên được đưa ra, hoặc nếu -p tùy chọn được cung cấp, một danh sách tên
của tất cả các biến đã xuất được in. Các -n tùy chọn khiến thuộc tính xuất thành
được loại bỏ khỏi mỗi tên. Nếu một tên biến được theo sau bởi =lời, giá trị của
biến được đặt thành lời. xuất khẩu trả về trạng thái thoát là 0 trừ khi
gặp phải tùy chọn, một trong những tên không phải là một tên biến shell hợp lệ, hoặc -f
được cung cấp với một tên đó không phải là một chức năng.

fc [-e đặt tên] [-lnr] [Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên] [cuối cùng]
fc -s [pat=đại diện] [cmd]
Biểu mẫu đầu tiên chọn một loạt các lệnh từ Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên đến cuối cùng từ danh sách lịch sử
và hiển thị hoặc chỉnh sửa và thực hiện lại chúng. Têncuối cùng có thể được chỉ định là một
chuỗi (để xác định vị trí lệnh cuối cùng bắt đầu bằng chuỗi đó) hoặc dưới dạng số (an
lập chỉ mục vào danh sách lịch sử, trong đó một số âm được sử dụng làm phần bù từ
số lệnh hiện tại). Nếu cuối cùng không được chỉ định nó được đặt thành lệnh hiện tại
để liệt kê (để `` fc -l -10 '' in 10 lệnh cuối cùng) và Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên
nếu không thì. Nếu như Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên không được chỉ định, nó được đặt thành lệnh trước đó để chỉnh sửa
và -16 cho danh sách.

Sản phẩm -n tùy chọn ngăn chặn các số lệnh khi liệt kê. Các -r tùy chọn đảo ngược
thứ tự của các lệnh. Nếu -l tùy chọn được đưa ra, các lệnh được liệt kê trên
đầu ra tiêu chuẩn. Nếu không, người biên tập đưa ra bởi đặt tên được gọi trên một tệp
chứa các lệnh đó. Nếu đặt tên không được đưa ra, giá trị của FCEDIT biến
được sử dụng và giá trị của EDITOR if FCEDIT không được thiết lập. Nếu cả hai biến đều không được đặt,
vi Được sử dụng. Khi chỉnh sửa hoàn tất, các lệnh đã chỉnh sửa sẽ được lặp lại và thực thi.

Ở dạng thứ hai, lệnh được thực thi lại sau mỗi phiên bản của pat được thay thế
by đại diện. Lệnh cũng giống như Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên ở trên. Một bí danh hữu ích để sử dụng với
đây là `` r = "fc -s" ', vì vậy việc nhập `` r cc' 'sẽ chạy lệnh cuối cùng bắt đầu bằng
`` cc '' và nhập `` r '' sẽ thực hiện lại lệnh cuối cùng.

Nếu biểu mẫu đầu tiên được sử dụng, giá trị trả về là 0 trừ khi một tùy chọn không hợp lệ là
gặp phải hoặc Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên or cuối cùng chỉ định dòng lịch sử ngoài phạm vi. Nếu -e tùy chọn
được cung cấp, giá trị trả về là giá trị của lệnh cuối cùng được thực hiện hoặc thất bại
nếu lỗi xảy ra với tệp lệnh tạm thời. Nếu dạng thứ hai là
được sử dụng, trạng thái trả về là trạng thái của lệnh được thực thi lại, trừ khi cmd không
chỉ định một dòng lịch sử hợp lệ, trong trường hợp đó fc trả về thất bại.

fg [đặc tả công việc]
Sơ yếu lý lịch đặc tả công việc ở phía trước, và biến nó thành công việc hiện tại. Nếu đặc tả công việc không phải là
hiện tại, khái niệm của shell về hiện hành việc làm Được sử dụng. Giá trị trả về là
của lệnh được đặt ở nền trước hoặc không thành công nếu chạy khi kiểm soát công việc
bị vô hiệu hóa hoặc, khi chạy với điều khiển công việc được bật, nếu đặc tả công việc không chỉ định một hợp lệ
công việc hoặc đặc tả công việc chỉ định một công việc đã được bắt đầu mà không có kiểm soát công việc.

getopt dây quang tên [args.]
getopt được sử dụng bởi các thủ tục shell để phân tích cú pháp các tham số vị trí. dây quang
chứa các ký tự tùy chọn được nhận dạng; nếu một ký tự được theo sau bởi một
dấu hai chấm, tùy chọn được mong đợi có một đối số, phải được tách biệt với
nó bởi khoảng trắng. Các ký tự dấu hai chấm và dấu chấm hỏi không được dùng làm
ký tự tùy chọn. Mỗi lần nó được gọi, getopt đặt tùy chọn tiếp theo trong
biến shell tên, khởi tạo tên nếu nó không tồn tại và chỉ mục của
đối số tiếp theo được xử lý thành biến TÙY CHỌN. TÙY CHỌN được khởi tạo thành 1
mỗi khi shell hoặc script shell được gọi. Khi một tùy chọn yêu cầu một
lý lẽ, getopt đặt đối số đó vào biến TỐI ƯU. Vỏ không
không đặt lại TÙY CHỌN tự động; nó phải được đặt lại theo cách thủ công giữa nhiều cuộc gọi đến
getopt trong cùng một lệnh gọi shell nếu một bộ tham số mới được sử dụng.

Khi kết thúc các tùy chọn gặp phải, getopt thoát với giá trị trả về lớn hơn
hơn XNUMX. TÙY CHỌN được đặt thành chỉ mục của đối số không phải tùy chọn đầu tiên và tên
được đặt thành?.

getopt thường phân tích cú pháp các tham số vị trí, nhưng nếu có nhiều đối số hơn
in args., getopt thay vào đó phân tích cú pháp.

getopt có thể báo cáo lỗi theo hai cách. Nếu ký tự đầu tiên của dây quang là một
Đại tràng, im lặng báo cáo lỗi được sử dụng. Trong hoạt động bình thường, thông báo chẩn đoán
được in ra khi gặp phải các tùy chọn không hợp lệ hoặc các đối số tùy chọn bị thiếu. Nếu
biến OPTORR được đặt thành 0, sẽ không có thông báo lỗi nào được hiển thị, ngay cả khi
ký tự đầu tiên của dây quang không phải là dấu hai chấm.

Nếu một tùy chọn không hợp lệ được nhìn thấy, getopt nơi ? vào trong tên và, nếu không im lặng, sẽ in
một thông báo lỗi và hủy đặt TỐI ƯU. Nếu getopt là im lặng, ký tự tùy chọn
tìm thấy được đặt trong TỐI ƯU và không có thông báo chẩn đoán nào được in.

Nếu một đối số bắt buộc không được tìm thấy, và getopt không im lặng, một dấu chấm hỏi (?)
được đặt trong tên, TỐI ƯU chưa được đặt và thông báo chẩn đoán sẽ được in. Nếu
getopt là im lặng, sau đó là dấu hai chấm (:) được đặt trong tênTỐI ƯU được đặt thành
ký tự tùy chọn được tìm thấy.

getopt trả về true nếu một tùy chọn, được chỉ định hoặc không được chỉ định, được tìm thấy. Nó trở lại
false nếu phần cuối của các tùy chọn gặp phải hoặc lỗi xảy ra.

băm [-lr] [-p tên tập tin] [-dt] [tên]
Mỗi lần băm được gọi, tên đường dẫn đầy đủ của lệnh tên được xác định bởi
tìm kiếm các thư mục trong $ PATH và được ghi nhớ. Mọi thứ đã được ghi nhớ trước đây
tên đường dẫn bị loại bỏ. Nếu -p tùy chọn được cung cấp, không có tìm kiếm đường dẫn nào được thực hiện,
tên tập tin được sử dụng làm tên tệp đầy đủ của lệnh. Các -r tùy chọn gây ra
vỏ để quên tất cả các vị trí đã nhớ. Các -d tùy chọn khiến vỏ bị quên
vị trí được ghi nhớ của mỗi tên. Nếu -t tùy chọn được cung cấp, đầy đủ
tên đường dẫn mà mỗi tên tương ứng được in. Nếu nhiều tên đối số là
cung cấp với -t, Các tên được in trước tên đường dẫn đầy đủ được băm. Các -l
tùy chọn khiến đầu ra được hiển thị ở định dạng có thể được sử dụng lại làm đầu vào. Nếu
không có đối số nào được đưa ra, hoặc nếu chỉ -l được cung cấp, thông tin về được ghi nhớ
lệnh được in. Trạng thái trả về là đúng trừ khi tên không được tìm thấy hoặc một
tùy chọn không hợp lệ được cung cấp.

giúp đỡ [-dms] [Belt Hold]
Hiển thị thông tin hữu ích về các lệnh nội trang. Nếu Belt Hold được quy định, giúp đỡ
cung cấp trợ giúp chi tiết về tất cả các lệnh khớp Belt Hold; nếu không, hãy giúp đỡ cho tất cả
nội trang và cấu trúc điều khiển shell được in.
-d Hiển thị một mô tả ngắn về mỗi Belt Hold
-m Hiển thị mô tả của từng Belt Hold ở định dạng giống trang
-s Chỉ hiển thị tóm tắt cách sử dụng ngắn cho mỗi Belt Hold

Trạng thái trả về là 0 trừ khi không có lệnh nào khớp Belt Hold.

lịch sử [n]
lịch sử -c
lịch sử -d bù đắp
lịch sử -anrw [tên tập tin]
lịch sử -p arg [arg hữu ích. Cảm ơn !]
lịch sử -s arg [arg hữu ích. Cảm ơn !]
Không có tùy chọn nào, hãy hiển thị danh sách lịch sử lệnh với số dòng. Các dòng được liệt kê
với một * đã được sửa đổi. Một đối số của n chỉ liệt kê cuối cùng n các dòng. Nếu
biến shell ĐỊNH DẠNG THỜI GIAN LỊCH SỰ được đặt chứ không phải null, nó được sử dụng như một chuỗi định dạng
cho thời gian căng thẳng(3) để hiển thị dấu thời gian được liên kết với mỗi lịch sử được hiển thị
lối vào. Không có khoảng trống xen kẽ nào được in giữa tem thời gian đã định dạng và
dòng lịch sử. Nếu tên tập tin được cung cấp, nó được sử dụng làm tên của tệp lịch sử;
nếu không, giá trị của LỊCH SỬ Được sử dụng. Các tùy chọn, nếu được cung cấp, có những điều sau
ý nghĩa:
-c Xóa danh sách lịch sử bằng cách xóa tất cả các mục nhập.
-d bù đắp
Xóa mục lịch sử tại vị trí bù đắp.
-a Nối các dòng lịch sử `` mới '' (các dòng lịch sử đã nhập từ đầu
của hiện tại bash phiên) vào tệp lịch sử.
-n Đọc các dòng lịch sử chưa được đọc từ tệp lịch sử vào
danh sách lịch sử hiện tại. Đây là những dòng được thêm vào tệp lịch sử kể từ khi
sự khởi đầu của hiện tại bash phiên.
-r Đọc nội dung của tệp lịch sử và nối chúng vào lịch sử hiện tại
danh sách.
-w Ghi danh sách lịch sử hiện tại vào tệp lịch sử, ghi đè lịch sử
nội dung của tệp.
-p Thực hiện thay thế lịch sử trên phần sau args. và hiển thị kết quả trên
đầu ra tiêu chuẩn. Không lưu trữ kết quả trong danh sách lịch sử. Mỗi
arg phải được trích dẫn để tắt mở rộng lịch sử bình thường.
-s Lưu trữ args. trong danh sách lịch sử dưới dạng một mục nhập duy nhất. Lệnh cuối cùng trong
danh sách lịch sử bị xóa trước khi args. được thêm.

Nếu ĐỊNH DẠNG THỜI GIAN LỊCH SỰ biến được đặt, thông tin tem thời gian được liên kết với
mỗi mục nhập lịch sử được ghi vào tệp lịch sử, được đánh dấu bằng nhận xét lịch sử
tính cách. Khi tệp lịch sử được đọc, các dòng bắt đầu bằng nhận xét lịch sử
ký tự theo sau là một chữ số được hiểu là dấu thời gian cho
dòng lịch sử trước đó. Giá trị trả về là 0 trừ khi một tùy chọn không hợp lệ là
gặp phải, lỗi xảy ra khi đọc hoặc ghi tệp lịch sử, không hợp lệ
bù đắp được cung cấp như một đối số cho -dhoặc mở rộng lịch sử được cung cấp dưới dạng
tranh luận với -p thất bại

việc làm [-lnprs] [ đặc tả công việc ...]
việc làm -x lệnh [ args. ...]
Biểu mẫu đầu tiên liệt kê các công việc đang hoạt động. Các tùy chọn có ý nghĩa sau:
-l Liệt kê các ID quy trình ngoài thông tin bình thường.
-n Chỉ hiển thị thông tin về các công việc đã thay đổi trạng thái kể từ khi người dùng
đã được thông báo lần cuối về tình trạng của họ.
-p Chỉ liệt kê ID quy trình của trưởng nhóm quy trình của công việc.
-r Chỉ hiển thị các công việc đang chạy.
-s Chỉ hiển thị các công việc đã dừng.

If đặc tả công việc được đưa ra, đầu ra bị hạn chế đối với thông tin về công việc đó. Các
trạng thái trả về là 0 trừ khi gặp phải tùy chọn không hợp lệ hoặc không hợp lệ đặc tả công việc is
cung cấp.

Nếu -x tùy chọn được cung cấp, việc làm thay thế bất kỳ đặc tả công việc tìm thấy trong lệnh or args.
với ID nhóm quy trình tương ứng và thực thi lệnh vượt qua nó args.,
trả về trạng thái thoát của nó.

giết [-s sigspec | -n dấu hiệu | -sigspec] [pid | đặc tả công việc] ...
giết -l [sigspec | thoát_trạng thái]
Gửi tín hiệu được đặt tên bằng sigspec or dấu hiệu cho các quy trình được đặt tên bởi pid or
đặc tả công việc. sigspec là một tên tín hiệu không phân biệt chữ hoa chữ thường, chẳng hạn như SIGKILL (với hoặc
không có SIG tiền tố) hoặc một số tín hiệu; dấu hiệu là một số hiệu. Nếu sigspec
không có mặt, sau đó HẠN MỤC TIÊU được giả định. Một đối số của -l liệt kê các tên tín hiệu.
Nếu bất kỳ đối số nào được cung cấp khi -l được đưa ra, tên của các tín hiệu
tương ứng với các đối số được liệt kê và trạng thái trả về là 0.
thoát_trạng thái tranh luận với -l là một số chỉ định số tín hiệu hoặc
trạng thái thoát của một quá trình được kết thúc bởi một tín hiệu. giết trả về true nếu có ít nhất một
tín hiệu đã được gửi thành công hoặc sai nếu xảy ra lỗi hoặc tùy chọn không hợp lệ là
đã gặp.

cho phép arg [arg ...]
Mỗi trang web arg là một biểu thức số học được đánh giá (xem MÔN SỐ HỌC ĐÁNH GIÁ
bên trên). Nếu cuối cùng arg đánh giá là 0, cho phép trả về 1; 0 được trả về ngược lại.

địa phương [tùy chọn] [tên[=giá trị] ...]
Đối với mỗi đối số, một biến cục bộ có tên tên được tạo và chỉ định giá trị. Các
tùy chọn có thể là bất kỳ tùy chọn nào được chấp nhận bởi khai. Khi nào địa phương được sử dụng trong một
hàm, nó gây ra biến tên để có một phạm vi hiển thị được giới hạn cho điều đó
chức năng và con cái của nó. Không có toán hạng, địa phương viết một danh sách địa phương
các biến đối với đầu ra tiêu chuẩn. Đó là một lỗi khi sử dụng địa phương khi không ở trong một
hàm số. Trạng thái trả về là 0 trừ khi địa phương được sử dụng bên ngoài một chức năng, một
không hợp lệ tên được cung cấp, hoặc tên là một biến chỉ đọc.

đăng xuất Thoát khỏi trình bao đăng nhập.

tệp bản đồ [-n tính] [-O nguồn gốc] [-s tính] [-t] [-u fd] [-C gọi lại] [-c lượng tử] [mảng]
sắp xếp lại [-n tính] [-O nguồn gốc] [-s tính] [-t] [-u fd] [-C gọi lại] [-c lượng tử]
[mảng]
Đọc các dòng từ đầu vào chuẩn vào biến mảng được lập chỉ mục mảng, Hoặc từ
trình mô tả tệp fd nếu -u tùy chọn được cung cấp. Biến BẢN ĐỒ
mặc định mảng. Các tùy chọn, nếu được cung cấp, có các ý nghĩa sau:
-n Sao chép nhiều nhất tính các dòng. Nếu như tính là 0, tất cả các dòng đều được sao chép.
-O Bắt đầu gán cho mảng tại chỉ mục nguồn gốc. Chỉ số mặc định là 0.
-s Bỏ cái đầu tiên tính dòng đã đọc.
-t Xóa một dòng mới ở cuối mỗi dòng đã đọc.
-u Đọc các dòng từ trình mô tả tệp fd thay vì đầu vào tiêu chuẩn.
-C Đánh giá gọi lại mỗi lần lượng tử dòng được đọc. Các -c tùy chọn chỉ định
lượng tử.
-c Chỉ định số dòng được đọc giữa mỗi cuộc gọi tới gọi lại.

If -C được chỉ định mà không có -c, lượng tử mặc định là 5000. Khi gọi lại is
được đánh giá, nó được cung cấp chỉ mục của phần tử mảng tiếp theo sẽ được chỉ định và
dòng sẽ được gán cho phần tử đó làm đối số bổ sung. gọi lại is
được đánh giá sau khi dòng được đọc nhưng trước khi phần tử mảng được gán.

Nếu không được cung cấp với nguồn gốc rõ ràng, tệp bản đồ sẽ rõ ràng mảng trước khi chỉ định
với nó.

tệp bản đồ trả về thành công trừ khi một tùy chọn không hợp lệ hoặc đối số tùy chọn là
cung cấp, mảng không hợp lệ hoặc không thể chuyển nhượng, hoặc nếu mảng không phải là một mảng được lập chỉ mục.

popd [-n] [+n] [-n]
Xóa các mục khỏi ngăn xếp thư mục. Không có đối số, xóa phần trên cùng
thư mục từ ngăn xếp và thực hiện một cd đến thư mục hàng đầu mới. Tranh luận,
nếu được cung cấp, có các nghĩa sau:
-n Ngăn chặn sự thay đổi thông thường của thư mục khi xóa thư mục khỏi
ngăn xếp, để chỉ ngăn xếp được thao tác.
+n Loại bỏ nmục nhập thứ đếm từ bên trái của danh sách được hiển thị bởi dirs,
bắt đầu bằng số không. Ví dụ: `` popd +0 '' xóa thư mục đầu tiên,
`` popd +1 '' thứ hai.
-n Loại bỏ nmục nhập thứ đếm từ bên phải của danh sách được hiển thị bởi dirs,
bắt đầu bằng số không. Ví dụ: `` popd -0 '' xóa thư mục cuối cùng,
`` popd -1 '' tiếp theo đến cuối cùng.

Nếu popd lệnh thành công, một dirs cũng được thực hiện, và lợi nhuận
trạng thái là 0. popd trả về false nếu gặp phải tùy chọn không hợp lệ, thư mục
ngăn xếp trống, mục nhập ngăn xếp thư mục không tồn tại được chỉ định hoặc thư mục
thay đổi không thành công.

printf [-v ] định dạng [đối số]
Viết định dạng đối số đến đầu ra tiêu chuẩn dưới sự kiểm soát của
định dạng. Các -v tùy chọn khiến đầu ra được gán cho biến hơn
hơn là được in ra đầu ra tiêu chuẩn.

Sản phẩm định dạng là một chuỗi ký tự chứa ba loại đối tượng: đơn giản
các ký tự, được sao chép đơn giản sang đầu ra tiêu chuẩn, chuỗi thoát ký tự,
được chuyển đổi và sao chép sang đầu ra tiêu chuẩn và thông số kỹ thuật định dạng,
mỗi nguyên nhân trong số đó gây ra việc in lần tiếp theo đối số. Ngoài
Tiêu chuẩn printf(1) thông số kỹ thuật định dạng, printf giải thích những điều sau đây
tiện ích mở rộng:
%b nguyên nhân printf để mở rộng chuỗi thoát dấu gạch chéo ngược trong
đối số (ngoại trừ việc \c kết thúc đầu ra, dấu gạch chéo ngược trong \', \"\?
không bị loại bỏ và các thoát bát phân bắt đầu bằng \0 có thể chứa đến bốn
chữ số).
%q nguyên nhân printf để xuất ra tương ứng đối số ở một định dạng có thể
được sử dụng lại làm đầu vào shell.
%(ngày tháng)T
nguyên nhân printf để xuất chuỗi ngày-giờ do sử dụng ngày tháng as
một chuỗi định dạng cho thời gian căng thẳng(3). Tương ứng đối số là một số nguyên
đại diện cho số giây kể từ kỷ nguyên. Hai đối số đặc biệt
các giá trị có thể được sử dụng: -1 đại diện cho thời gian hiện tại và -2 đại diện cho
thời gian shell được gọi. Nếu không có đối số nào được chỉ định, chuyển đổi sẽ hoạt động
như thể -1 đã được đưa ra. Đây là một ngoại lệ so với thông thường printf hành vi.

Các đối số đến các chỉ định định dạng không phải chuỗi được coi là hằng số C, ngoại trừ một
được phép đứng đầu dấu cộng hoặc dấu trừ và nếu ký tự đứng đầu là một hoặc
dấu ngoặc kép, giá trị là giá trị ASCII của ký tự sau.

Sản phẩm định dạng được tái sử dụng khi cần thiết để tiêu thụ tất cả đối số. Nếu định dạng
yêu cầu nhiều hơn đối số hơn được cung cấp, các thông số kỹ thuật định dạng bổ sung hoạt động
như thể một giá trị XNUMX hoặc chuỗi null, nếu thích hợp, đã được cung cấp. Sự trở lại
giá trị bằng XNUMX đối với thành công, khác XNUMX đối với thất bại.

pushd [-n] [+n] [-n]
pushd [-n] [dir]
Thêm một thư mục vào đầu ngăn xếp thư mục hoặc xoay ngăn xếp, làm cho
đầu mới của ngăn xếp thư mục làm việc hiện tại. Không có đối số,
trao đổi hai thư mục trên cùng và trả về 0, trừ khi ngăn xếp thư mục
làm rỗng cái gì. Các đối số, nếu được cung cấp, có các nghĩa sau:
-n Ngăn chặn sự thay đổi thông thường của thư mục khi thêm thư mục vào
ngăn xếp, để chỉ ngăn xếp được thao tác.
+n Xoay ngăn xếp để nthư mục thứ (tính từ bên trái của
danh sách được hiển thị bởi dirs, bắt đầu bằng số XNUMX) là ở trên cùng.
-n Xoay ngăn xếp để nthư mục thứ (tính từ bên phải của
danh sách được hiển thị bởi dirs, bắt đầu bằng số XNUMX) là ở trên cùng.
dir Thêm dir vào ngăn xếp thư mục ở trên cùng, làm cho nó hiện tại mới
thư mục làm việc như thể nó đã được cung cấp làm đối số cho cd
được xây dựng trong.

Nếu pushd lệnh thành công, một dirs cũng được thực hiện. Nếu hình thức đầu tiên
Được sử dụng, pushd trả về 0 trừ khi cd đến dir không thành công. Với hình thức thứ hai, pushd
trả về 0 trừ khi ngăn xếp thư mục trống, ngăn xếp thư mục không tồn tại
phần tử được chỉ định hoặc thay đổi thư mục thành hiện tại mới được chỉ định
thư mục bị lỗi.

pwd [-LP]
In tên đường dẫn tuyệt đối của thư mục làm việc hiện tại. Tên đường dẫn được in
không chứa liên kết tượng trưng nếu -P tùy chọn được cung cấp hoặc -o vật lý tùy chọn
đến định lệnh nội trang được bật. Nếu -L tùy chọn được sử dụng, tên đường dẫn
in ra có thể chứa các liên kết tượng trưng. Trạng thái trả về là 0 trừ khi xảy ra lỗi
trong khi đọc tên của thư mục hiện tại hoặc một tùy chọn không hợp lệ được cung cấp.

đọc [-ers] [-a một cái tên] [-d phân định] [-i văn bản] [-n nchar] [-N nchar] [-p nhanh chóng] [-t
thời gian chờ] [-u fd] [tên ...]
Một dòng được đọc từ đầu vào chuẩn hoặc từ trình mô tả tệp fd cung cấp
như một đối số cho -u và từ đầu tiên được gán cho từ đầu tiên tên,
từ thứ hai đến thứ hai tên, v.v., với những từ còn sót lại và
phân cách can thiệp được chỉ định cho cuối cùng tên. Nếu có ít từ được đọc hơn
từ luồng đầu vào hơn tên, các tên còn lại được gán giá trị trống.
Các nhân vật trong IFS được sử dụng để tách dòng thành các từ bằng cách sử dụng các quy tắc giống nhau
shell sử dụng để mở rộng (được mô tả ở trên dưới Từ Tách). Dấu gạch chéo ngược
tính cách (\) có thể được sử dụng để loại bỏ bất kỳ ý nghĩa đặc biệt nào cho ký tự tiếp theo được đọc
và để tiếp tục dòng. Các tùy chọn, nếu được cung cấp, có các ý nghĩa sau:
-a một cái tên
Các từ được gán cho các chỉ số tuần tự của biến mảng một cái tên,
bắt đầu từ 0. một cái tên không được đặt trước khi bất kỳ giá trị mới nào được chỉ định. Khác
tên các đối số bị bỏ qua.
-d phân định
Nhân vật đầu tiên của phân định được sử dụng để kết thúc dòng đầu vào, thay vì
hơn dòng mới.
-e Nếu đầu vào tiêu chuẩn đến từ một thiết bị đầu cuối, đường dẫn (xem ĐỌC TIẾP
ở trên) được sử dụng để lấy dòng. Dòng đọc sử dụng hiện tại (hoặc mặc định,
nếu chỉnh sửa dòng không được kích hoạt trước đó) cài đặt chỉnh sửa.
-i văn bản
If đường dẫn đang được sử dụng để đọc dòng, văn bản được đưa vào chỉnh sửa
đệm trước khi bắt đầu chỉnh sửa.
-n nchar
đọc trở lại sau khi đọc nchar các ký tự thay vì chờ đợi một
dòng đầu vào hoàn chỉnh, nhưng tôn trọng dấu phân cách nếu ít hơn nchar
các ký tự được đọc trước dấu phân cách.
-N nchar
đọc trả về sau khi đọc chính xác nchar ký tự thay vì chờ đợi
một dòng đầu vào hoàn chỉnh, trừ khi gặp phải EOF hoặc đọc hết lần.
Các ký tự dấu phân cách gặp trong đầu vào không được xử lý đặc biệt và
Không gây ra đọc trở lại cho đến khi nchar các ký tự được đọc.
-p nhanh chóng
Giao diện nhanh chóng về lỗi tiêu chuẩn, không có dòng mới ở cuối, trước
cố gắng đọc bất kỳ đầu vào nào. Lời nhắc chỉ được hiển thị nếu đầu vào là
đến từ một thiết bị đầu cuối.
-r Backslash không hoạt động như một ký tự thoát. Dấu gạch chéo ngược được coi là
trở thành một phần của dòng. Đặc biệt, một cặp dấu gạch chéo ngược-dòng mới có thể không
được sử dụng như một sự tiếp nối dòng.
-s Chế độ im lặng. Nếu đầu vào đến từ một thiết bị đầu cuối, các ký tự sẽ không được lặp lại.
-t thời gian chờ
Nguyên nhân đọc hết thời gian chờ và trả về lỗi nếu một dòng đầu vào hoàn chỉnh (hoặc
số ký tự được chỉ định) không được đọc trong thời gian chờ giây. thời gian chờ
có thể là một số thập phân với một phần thập phân theo sau số thập phân
chỉ. Tùy chọn này chỉ hiệu quả nếu đọc đang đọc đầu vào từ một
thiết bị đầu cuối, đường ống hoặc tệp đặc biệt khác; nó không có tác dụng khi đọc từ
các tệp thông thường. Nếu đọc hết lần, đọc lưu bất kỳ đầu vào từng phần nào được đọc vào
biến được chỉ định tên. Nếu thời gian chờ là 0, đọc trả lại ngay lập tức,
mà không cần cố gắng đọc bất kỳ dữ liệu nào. Trạng thái thoát là 0 nếu có sẵn đầu vào
trên bộ mô tả tệp được chỉ định, khác không. Trạng thái thoát là
lớn hơn 128 nếu thời gian chờ bị vượt quá.
-u fd Đọc đầu vào từ bộ mô tả tệp fd.

Nếu không tên được cung cấp, số đọc dòng được gán cho biến ĐÁP LẠI. Các
mã trả về bằng XNUMX, trừ khi gặp phải phần cuối của tệp, đọc hết thời gian (trong đó
trong trường hợp mã trả về lớn hơn 128), một lỗi gán biến (chẳng hạn như
gán cho một biến chỉ đọc) xảy ra hoặc một bộ mô tả tệp không hợp lệ được cung cấp
như đối số để -u.

chỉ đọc [-aAf] [-p] [tên[=lời] ...]
Sự trao tên được đánh dấu là chỉ đọc; giá trị của những tên có thể không được thay đổi
bằng cách phân công tiếp theo. Nếu -f tùy chọn được cung cấp, các chức năng
tương ứng với tên được đánh dấu như vậy. Các -a tùy chọn hạn chế các biến thành
mảng được lập chỉ mục; các -A tùy chọn hạn chế các biến trong mảng kết hợp. Nếu
cả hai tùy chọn đều được cung cấp, -A được ưu tiên. Nếu không tên các đối số được đưa ra, hoặc
nếu -p tùy chọn được cung cấp, danh sách tất cả các tên chỉ đọc được in. Cai khac
các tùy chọn có thể được sử dụng để hạn chế đầu ra cho một tập hợp con của tập hợp chỉ đọc
những cái tên. Các -p tùy chọn khiến đầu ra được hiển thị ở định dạng có thể được sử dụng lại
làm đầu vào. Nếu một tên biến được theo sau bởi =lời, giá trị của biến là
đặt thành lời. Trạng thái trả về là 0 trừ khi gặp phải tùy chọn không hợp lệ, một
của tên không phải là một tên biến shell hợp lệ, hoặc -f được cung cấp với một tên việc này
không phải là một chức năng.

trở lại [n]
Khiến một hàm ngừng thực thi và trả về giá trị được chỉ định bởi n để nó
người gọi. Nếu như n bị bỏ qua, trạng thái trả về là trạng thái của lệnh cuối cùng được thực thi trong
cơ quan chức năng. Nếu trở lại được sử dụng bên ngoài một hàm, nhưng trong quá trình thực thi
kịch bản của . (nguồn), nó làm cho trình bao ngừng thực hiện lệnh đó
script và trả về một trong hai n hoặc trạng thái thoát của lệnh cuối cùng được thực thi trong
script làm trạng thái thoát của script. Nếu n được cung cấp, giá trị trả về là
8 bit ít quan trọng nhất của nó. Trạng thái trả về là khác XNUMX nếu trở lại được cung cấp
một đối số không phải là số hoặc được sử dụng bên ngoài một hàm và không phải trong khi thực thi một
kịch bản của . or nguồn. Bất kỳ lệnh nào được liên kết với TRỞ VỀ bẫy được thực hiện
trước khi thực thi tiếp tục sau khi hàm hoặc tập lệnh.

định [--abefhkmnptuvxBCEHPT] [-o tên tùy chọn] [arg ...]
định [+ abefhkmnptuvxBCEHPT] [+o tên tùy chọn] [arg ...]
Không có tùy chọn, tên và giá trị của mỗi biến shell được hiển thị trong
định dạng có thể được sử dụng lại làm đầu vào để thiết lập hoặc đặt lại
biến. Không thể đặt lại các biến chỉ đọc. Trong posix chế độ, chỉ có vỏ
các biến được liệt kê. Đầu ra được sắp xếp theo ngôn ngữ hiện tại. Khi nào
các tùy chọn được chỉ định, chúng thiết lập hoặc bỏ đặt các thuộc tính shell. Mọi đối số còn lại
sau khi xử lý tùy chọn được coi là giá trị cho các tham số vị trí và được
được chỉ định, theo thứ tự, cho $1, $2, hữu ích. Cảm ơn ! $n. Các tùy chọn, nếu được chỉ định, có những điều sau
ý nghĩa:
-a Tự động đánh dấu các biến và hàm được sửa đổi hoặc tạo
để xuất sang môi trường của các lệnh tiếp theo.
-b Báo cáo tình trạng của các công việc nền bị chấm dứt ngay lập tức, thay vì
trước lời nhắc chính tiếp theo. Điều này chỉ hiệu quả khi kiểm soát công việc
kích hoạt.
-e Thoát ngay lập tức nếu đường ống dẫn (có thể bao gồm một đơn giản
lệnh) Trong , Hoặc một hợp chất lệnh (xem SHELL NGỮ PHÁP ở trên), lối ra
với trạng thái khác không. Trình bao không thoát nếu lệnh không thành công
là một phần của danh sách lệnh ngay sau trong khi or cho đến khi từ khóa,
một phần của bài kiểm tra sau if or elif từ dành riêng, một phần của bất kỳ
lệnh được thực hiện trong một && or || danh sách ngoại trừ lệnh sau cuối cùng
&& or ||, bất kỳ lệnh nào trong một đường dẫn nhưng là lệnh cuối cùng hoặc nếu lệnh của
giá trị trả về đang được đảo ngược với !. Nếu một lệnh ghép khác với
subshell trả về trạng thái khác XNUMX vì một lệnh không thành công khi -e
bị bỏ qua, vỏ không thoát ra. Một cái bẫy trên ERR, nếu được đặt, được thực thi
trước khi thoát ra khỏi vỏ. Tùy chọn này áp dụng cho môi trường shell và
từng môi trường vỏ con riêng biệt (xem COMMAND CHẤP HÀNH MÔI TRƯỜNG
ở trên), và có thể khiến các trang con thoát ra trước khi thực hiện tất cả các lệnh
trong vỏ con.

Nếu một lệnh ghép hoặc hàm shell thực thi trong ngữ cảnh nơi -e is
bị bỏ qua, không có lệnh nào được thực thi trong lệnh ghép hoặc
cơ quan chức năng sẽ bị ảnh hưởng bởi -e cài đặt, ngay cả khi -e được thiết lập và một
lệnh trả về trạng thái thất bại. Nếu một lệnh ghép hoặc hàm shell
bộ -e trong khi thực thi trong ngữ cảnh nơi -e bị bỏ qua, cài đặt đó sẽ
không có bất kỳ tác dụng nào cho đến khi lệnh ghép hoặc lệnh chứa
lệnh gọi hàm hoàn tất.
-f Tắt mở rộng tên đường dẫn.
-h Ghi nhớ vị trí của các lệnh khi chúng được tra cứu để thực thi.
Điều này được kích hoạt theo mặc định.
-k Tất cả các đối số ở dạng câu lệnh gán được đặt trong
môi trường cho một lệnh, không chỉ những môi trường đứng trước tên lệnh.
-m Chế độ giám sát. Kiểm soát công việc được bật. Tùy chọn này được bật theo mặc định cho
shell tương tác trên các hệ thống hỗ trợ nó (xem VIỆC LÀM KIỂM SOÁT bên trên). Tất cả các
các quy trình chạy trong một nhóm quy trình riêng biệt. Khi một công việc nền
hoàn thành, shell in ra một dòng chứa trạng thái thoát của nó.
-n Đọc lệnh nhưng không thực hiện chúng. Điều này có thể được sử dụng để kiểm tra một vỏ
tập lệnh cho lỗi cú pháp. Điều này bị bỏ qua bởi các trình bao tương tác.
-o tên tùy chọn
Sản phẩm tên tùy chọn có thể là một trong những điều sau:
tất cả xuất khẩu
Giống như -a.
nẹpexpand
Giống như -B.
emacs Sử dụng giao diện chỉnh sửa dòng lệnh kiểu emacs. Điều này được kích hoạt
theo mặc định khi shell tương tác, trừ khi shell
bắt đầu với - ghi chú lựa chọn. Điều này cũng ảnh hưởng đến việc chỉnh sửa
giao diện được sử dụng cho đọc -e.
sai lầm Giống như -e.
việc vặt
Giống như -E.
dấu chức năng
Giống như -T.
băm Giống như -h.
mở rộng lịch sử
Giống như -H.
lịch sử Bật lịch sử lệnh, như được mô tả ở trên trong LỊCH SỬ. Điều này
tùy chọn được bật theo mặc định trong trình bao tương tác.
làm ngơ
Hiệu ứng giống như lệnh shell `` IGNOREEOF = 10 '' đã được
thực thi (xem Shell Biến ở trên).
từ khóa Giống như -k.
màn hình Giống như -m.
người ăn bám
Giống như -C.
noexec Giống như -n.
người lùn Giống như -f.
Không có nhật ký Hiện đang bị bỏ qua.
thông báo Giống như -b.
danh từ Giống như -u.
một cmd Giống như -t.
vật lý
Giống như -P.
cái ống nước
Nếu được đặt, giá trị trả về của một đường ống là giá trị của
(ngoài cùng bên phải) lệnh để thoát với trạng thái khác XNUMX hoặc bằng XNUMX nếu tất cả
lệnh trong đường dẫn thoát thành công. Tùy chọn này là
bị tắt theo mặc định.
posix Thay đổi hành vi của bash nơi hoạt động mặc định khác nhau
từ tiêu chuẩn POSIX để phù hợp với tiêu chuẩn (posix chế độ). Xem
XEM CŨNG THẾ bên dưới để tham khảo tài liệu trình bày chi tiết cách posix
chế độ ảnh hưởng đến hành vi của bash.
đặc quyền đặc lợi
Giống như -p.
dài dòng Giống như -v.
vi Sử dụng giao diện chỉnh sửa dòng lệnh vi-style. Điều này cũng ảnh hưởng đến
giao diện chỉnh sửa được sử dụng cho đọc -e.
xtrace Giống như -x.
If -o được cung cấp với không tên tùy chọn, giá trị của các tùy chọn hiện tại
được in. Nếu +o được cung cấp với không tên tùy chọn, một loạt các định
các lệnh để tạo lại cài đặt tùy chọn hiện tại được hiển thị trên
đầu ra tiêu chuẩn.
-p Bật đặc quyền đặc lợi cách thức. Trong chế độ này, $ ENV$ BASH_ENV tập tin là
không được xử lý, các chức năng của shell không được kế thừa từ môi trường và
các VỎ, BASHOP, CDPATHTOÀN CẦU các biến, nếu chúng xuất hiện
trong môi trường, được bỏ qua. Nếu trình bao được bắt đầu bằng
id người dùng hiệu quả (nhóm) không bằng id người dùng thực (nhóm) và -p
tùy chọn không được cung cấp, những hành động này được thực hiện và id người dùng hiệu quả
được đặt thành id người dùng thực. Nếu -p tùy chọn được cung cấp khi khởi động,
id người dùng hiệu quả không được đặt lại. Việc tắt tùy chọn này gây ra
id nhóm và người dùng hiệu quả sẽ được đặt thành id nhóm và người dùng thực.
-t Thoát sau khi đọc và thực hiện một lệnh.
-u Xử lý các biến và tham số chưa đặt ngoài các tham số đặc biệt "@"
và "*" là lỗi khi thực hiện mở rộng tham số. Nếu mở rộng là
đã thử trên một biến hoặc tham số chưa được đặt, trình bao sẽ in ra lỗi
và, nếu không tương tác, sẽ thoát với trạng thái khác XNUMX.
-v In các dòng đầu vào của shell khi chúng được đọc.
-x Sau khi mở rộng mỗi đơn giản lệnh, cho yêu cầu, trường hợp yêu cầu, chọn
lệnh, hoặc số học cho lệnh, hiển thị giá trị mở rộng của PS4,
theo sau là lệnh và các đối số mở rộng của nó hoặc danh sách từ liên quan.
-B Vỏ thực hiện mở rộng dấu ngoặc nhọn (xem Cú đúp Sự bành trướng bên trên). Đây là trên
theo mặc định.
-C Nếu được đặt, bash không ghi đè lên tệp hiện có bằng >, >&<>
các toán tử chuyển hướng. Điều này có thể bị ghi đè khi tạo tệp đầu ra
bằng cách sử dụng toán tử chuyển hướng >| thay vì >.
-E Nếu được đặt, bất kỳ bẫy nào trên ERR được kế thừa bởi các hàm shell, lệnh
thay thế và các lệnh được thực thi trong môi trường vỏ con. Các ERR
bẫy thường không được kế thừa trong những trường hợp như vậy.
-H Kích hoạt tính năng ! thay thế lịch sử phong cách. Tùy chọn này được bật theo mặc định khi
shell là tương tác.
-P Nếu được đặt, trình bao không giải quyết các liên kết tượng trưng khi thực hiện lệnh
như là cd thay đổi thư mục làm việc hiện tại. Nó sử dụng vật lý
cấu trúc thư mục thay thế. Theo mặc định, bash tuân theo chuỗi logic của
thư mục khi thực hiện các lệnh thay đổi thư mục hiện tại.
-T Nếu được đặt, bất kỳ bẫy nào trên DEBUGTRỞ VỀ được kế thừa bởi các hàm shell,
thay thế lệnh và các lệnh được thực thi trong môi trường vỏ con.
Sản phẩm DEBUGTRỞ VỀ bẫy thường không được kế thừa trong những trường hợp như vậy.
-- Nếu không có đối số nào tuân theo tùy chọn này, thì các tham số vị trí là
không đặt. Nếu không, các tham số vị trí được đặt thành args, ngay cả khi
một số trong số chúng bắt đầu bằng -.
- Báo hiệu sự kết thúc của các tùy chọn, vì tất cả các tùy chọn còn lại args được giao cho
các tham số vị trí. Các -x-v các tùy chọn bị tắt. Nếu có
Không args, các tham số vị trí không thay đổi.

Các tùy chọn bị tắt theo mặc định trừ khi có ghi chú khác. Sử dụng + thay vì -
khiến các tùy chọn này bị tắt. Các tùy chọn cũng có thể được chỉ định như
đối số cho một lệnh gọi của trình bao. Bộ tùy chọn hiện tại có thể được tìm thấy
in $-. Trạng thái trả về luôn đúng trừ khi gặp phải tùy chọn không hợp lệ.

thay đổi [n]
Các tham số vị trí từ n+1 ... được đổi tên thành $1 .... Thông số
đại diện bởi những con số $# xuống $#-n+1 chưa được đặt. n phải là một không âm
số nhỏ hơn hoặc bằng $#. Nếu n là 0, không có tham số nào được thay đổi. Nếu n is
không được đưa ra, nó được giả định là 1. Nếu n lớn hơn $#, vị trí
các thông số không bị thay đổi. Trạng thái trả về lớn hơn XNUMX nếu n lớn hơn
hơn $# hoặc nhỏ hơn 0; nếu không thì XNUMX.

xô đẩy [-pqsu] [-o] [chọn tên ...]
Chuyển đổi các giá trị của cài đặt kiểm soát hành vi của trình bao tùy chọn. Các thiết lập
có thể là những thứ được liệt kê bên dưới, hoặc nếu -o tùy chọn được sử dụng, những tùy chọn có sẵn
với -o tùy chọn cho định lệnh nội trang. Không có tùy chọn hoặc với -p
tùy chọn, danh sách tất cả các tùy chọn có thể cài đặt được hiển thị, với dấu hiệu cho biết liệu
hoặc không từng được thiết lập. Các -p tùy chọn khiến đầu ra được hiển thị trong một biểu mẫu có thể
được sử dụng lại làm đầu vào. Các tùy chọn khác có ý nghĩa sau:
-s Bật (đặt) từng chọn tên.
-u Tắt (bỏ đặt) từng chọn tên.
-q Ngắt đầu ra bình thường (chế độ yên tĩnh); trạng thái trả lại cho biết liệu
các chọn tên được đặt hoặc không được đặt. Nếu nhiều chọn tên các đối số được đưa ra với
-q, trạng thái trả về là XNUMX nếu tất cả chọn tên được kích hoạt; khác không
nếu không thì.
-o Hạn chế các giá trị của chọn tên là những người được xác định cho -o tùy chọn cho
định được xây dựng trong.

Nếu một trong hai -s or -u được sử dụng với không chọn tên tranh luận, xô đẩy chỉ hiển thị những
các tùy chọn được đặt hoặc không được đặt tương ứng. Trừ khi có ghi chú khác, xô đẩy
các tùy chọn bị tắt (bỏ đặt) theo mặc định.

Trạng thái trả lại khi liệt kê các tùy chọn bằng XNUMX nếu tất cả chọn tên được bật, không
bằng không nếu không. Khi thiết lập hoặc bỏ thiết lập các tùy chọn, trạng thái trả về là XNUMX
trừ khi một chọn tên không phải là một tùy chọn trình bao hợp lệ.

Danh sách các xô đẩy tùy chọn là:

autocd Nếu được đặt, một tên lệnh là tên của một thư mục sẽ được thực thi như thể nó
là đối số cho cd yêu cầu. Tùy chọn này chỉ được sử dụng bởi
vỏ tương tác.
cdable_vars
Nếu được đặt, một đối số cho cd lệnh nội trang không phải là một thư mục
giả định là tên của một biến có giá trị là thư mục để thay đổi
đến.
cdspell Nếu được đặt, các lỗi nhỏ về chính tả của một thành phần thư mục trong một cd
lệnh sẽ được sửa chữa. Các lỗi được kiểm tra được chuyển đổi
ký tự, một ký tự bị thiếu và một ký tự quá nhiều. Nếu một
sửa được tìm thấy, tên tệp đã sửa được in và lệnh
tiền thu được. Tùy chọn này chỉ được sử dụng bởi các trình bao tương tác.
kiểm tra
Nếu được đặt, bash kiểm tra xem một lệnh được tìm thấy trong bảng băm có tồn tại trước đó không
cố gắng thực hiện nó. Nếu một lệnh băm không còn tồn tại, một đường dẫn bình thường
tìm kiếm được thực hiện.
công việc kiểm tra
Nếu được đặt, bash liệt kê trạng thái của mọi công việc đã dừng và đang chạy trước đó
thoát khỏi một trình bao tương tác. Nếu bất kỳ công việc nào đang chạy, điều này gây ra
lối ra được trì hoãn cho đến khi lối ra thứ hai được cố gắng mà không có sự can thiệp
lệnh (xem VIỆC LÀM KIỂM SOÁT bên trên). Vỏ luôn hoãn thoát nếu có
các công việc bị dừng lại.
kiểm tra kích thước
Nếu được đặt, bash kiểm tra kích thước cửa sổ sau mỗi lệnh và nếu cần,
cập nhật các giá trị của NGÀNH NGHỀCỘT.
giáo dân Nếu được đặt, bash cố gắng lưu tất cả các dòng của lệnh nhiều dòng trong
cùng một mục lịch sử. Điều này cho phép dễ dàng chỉnh sửa lại các lệnh nhiều dòng.
tương thích31
Nếu được đặt, bash thay đổi hành vi của nó thành của phiên bản 3.1 đối với
các đối số được trích dẫn cho [[ lệnh có điều kiện =~ toán tử và ngôn ngữ-
so sánh chuỗi cụ thể khi sử dụng [[ lệnh có điều kiện <>
các toán tử. Các phiên bản bash trước bash-4.1 sử dụng đối chiếu ASCII và
strcmp(3); bash-4.1 trở lên sử dụng trình tự đối chiếu của ngôn ngữ hiện tại
sải bước(3).
tương thích32
Nếu được đặt, bash thay đổi hành vi của nó thành của phiên bản 3.2 đối với
so sánh chuỗi theo ngôn ngữ cụ thể khi sử dụng [[ lệnh có điều kiện <
> toán tử (xem mục trước).
tương thích40
Nếu được đặt, bash thay đổi hành vi của nó thành của phiên bản 4.0 đối với
so sánh chuỗi theo ngôn ngữ cụ thể khi sử dụng [[ lệnh có điều kiện <
> toán tử (xem mô tả của tương thích31) và ảnh hưởng của
làm gián đoạn danh sách lệnh. Bash phiên bản 4.0 trở lên làm gián đoạn
liệt kê như thể trình bao nhận được ngắt; các phiên bản trước tiếp tục
với lệnh tiếp theo trong danh sách.
tương thích41
Nếu được đặt, bash, khi vào posix chế độ, xử lý một trích dẫn đơn trong một trích dẫn kép
mở rộng tham số như một ký tự đặc biệt. Các dấu ngoặc kép phải phù hợp
(một số chẵn) và các ký tự giữa các dấu ngoặc kép là
được coi là trích dẫn. Đây là hoạt động của chế độ posix thông qua phiên bản 4.1.
Hành vi bash mặc định vẫn như trong các phiên bản trước.
tương thích42
Nếu được đặt, bash không xử lý chuỗi thay thế trong mẫu
mở rộng từ thay thế bằng cách sử dụng loại bỏ dấu ngoặc kép.
hoàn thành_fullquote
Nếu được đặt, bash trích dẫn tất cả các siêu ký tự shell trong tên tệp và thư mục
tên khi thực hiện hoàn thành. Nếu không được đặt, bash loại bỏ siêu ký tự
chẳng hạn như ký hiệu đô la từ tập hợp các ký tự sẽ được trích dẫn trong
tên tệp đã hoàn thành khi các ký tự siêu này xuất hiện trong biến shell
tài liệu tham khảo trong các từ được hoàn thành. Điều này có nghĩa là đô la đăng nhập
tên biến mở rộng đến thư mục sẽ không được trích dẫn; tuy nhiên, bất kỳ
các ký hiệu đô la xuất hiện trong tên tệp cũng sẽ không được trích dẫn. Đây là
chỉ hoạt động khi bash đang sử dụng dấu gạch chéo ngược để trích dẫn các tên tệp đã hoàn thành.
Biến này được đặt theo mặc định, là hành vi bash mặc định trong
các phiên bản đến 4.2.
mở rộng trực tiếp
Nếu được đặt, bash thay thế tên thư mục bằng kết quả của việc mở rộng từ
khi thực hiện hoàn thành tên tệp. Điều này thay đổi nội dung của
bộ đệm chỉnh sửa readline. Nếu không được đặt, bash cố gắng bảo tồn những gì
người dùng đã gõ.
đánh vần
Nếu được đặt, bash cố gắng sửa lỗi chính tả trên các tên thư mục trong word
hoàn thành nếu tên thư mục được cung cấp ban đầu không tồn tại.
dotglob Nếu được đặt, bash bao gồm các tên tệp bắt đầu bằng dấu `. ' trong kết quả của
mở rộng tên đường dẫn.
thi hành án
Nếu được đặt, một trình bao không tương tác sẽ không thoát nếu nó không thể thực thi tệp
được chỉ định làm đối số cho giám đốc điều hành lệnh nội trang. Một trình bao tương tác
không thoát nếu giám đốc điều hành thất bại
mở rộng_bí danh
Nếu được đặt, bí danh sẽ được mở rộng như được mô tả ở trên trong bí danh. Tùy chọn này
được bật theo mặc định cho các trình bao tương tác.
người tống tiền
Nếu được đặt, hành vi dành cho trình gỡ lỗi sẽ được bật:
1. Sản phẩm -F tùy chọn cho khai nội trang hiển thị tên tệp nguồn
và số dòng tương ứng với mỗi tên chức năng được cung cấp dưới dạng
tranh luận.
2. Nếu lệnh chạy bởi DEBUG bẫy trả về một giá trị khác XNUMX,
lệnh tiếp theo bị bỏ qua và không được thực hiện.
3. Nếu lệnh chạy bởi DEBUG trap trả về giá trị là 2 và
shell đang thực thi trong một chương trình con (một hàm shell hoặc một shell
tập lệnh được thực thi bởi . or nguồn nội trang), một cuộc gọi đến trở lại is
mô phỏng.
4. BASH_ARGCBASH_ARGV được cập nhật như được mô tả trong
mô tả ở trên.
5. Tính năng theo dõi chức năng được bật: thay thế lệnh, các chức năng trình bao,
và các địa chỉ con được gọi bằng ( lệnh ) kế thừa DEBUGTRỞ VỀ
bẫy.
6. Tính năng dò tìm lỗi được bật: thay thế lệnh, các hàm shell,
và các địa chỉ con được gọi bằng ( lệnh ) kế thừa ERR bẩy.
extglob Nếu được đặt, các tính năng đối sánh mẫu mở rộng được mô tả ở trên trong
Tên đường dẫn Sự bành trướng được kích hoạt.
trích dẫn
Nếu được đặt, $'chuỗi'và $"chuỗi"trích dẫn được thực hiện trong ${tham số}
mở rộng được đặt trong dấu ngoặc kép. Tùy chọn này được kích hoạt theo mặc định.
thất bại
Nếu được đặt, các mẫu không khớp với tên tệp trong quá trình mở rộng tên đường dẫn
dẫn đến lỗi mở rộng.
lực_fignore
Nếu được đặt, các hậu tố được chỉ định bởi ĐĂNG KÝ biến shell khiến các từ trở thành
được bỏ qua khi thực hiện hoàn thành từ ngay cả khi các từ bị bỏ qua là
hoàn thành duy nhất có thể. Xem SHELL BIẾN ở trên cho một mô tả
of ĐĂNG KÝ. Tùy chọn này được kích hoạt theo mặc định.
toàn cầu
Nếu được đặt, biểu thức phạm vi được sử dụng trong biểu thức dấu ngoặc đối sánh mẫu (xem
Họa tiết Phù hợp ở trên) cư xử như thể trong ngôn ngữ C truyền thống khi
thực hiện các phép so sánh. Đó là, trình tự đối chiếu của ngôn ngữ hiện tại
không được tính đến, vì vậy b sẽ không đối chiếu giữa AB
Các ký tự ASCII viết hoa và viết thường sẽ đối chiếu với nhau.
sao cầu
Nếu được đặt, mẫu ** được sử dụng trong ngữ cảnh mở rộng tên đường dẫn sẽ khớp với tất cả
tệp và không hoặc nhiều thư mục và thư mục con. Nếu mô hình là
Theo sau là một /, chỉ các thư mục và thư mục con khớp nhau.
gnu_errfmt
Nếu được đặt, thông báo lỗi trình bao được viết trong thông báo lỗi GNU tiêu chuẩn
định dạng.
nối thêm
Nếu được đặt, danh sách lịch sử sẽ được nối vào tệp có tên bằng giá trị của
LỊCH SỬ biến khi shell thoát ra, thay vì ghi đè lên tệp.
lịch sử
Nếu được đặt, và đường dẫn đang được sử dụng, người dùng có cơ hội để
chỉnh sửa thay thế lịch sử không thành công.
xác minh lịch sử
Nếu được đặt, và đường dẫn đang được sử dụng, kết quả của việc thay thế lịch sử là
không được chuyển ngay đến trình phân tích cú pháp shell. Thay vào đó, dòng kết quả là
nạp vào đường dẫn chỉnh sửa bộ đệm, cho phép sửa đổi thêm.
lưu trữ hoàn thành
Nếu được đặt, và đường dẫn đang được sử dụng, bash sẽ cố gắng thực hiện tên máy chủ
hoàn thành khi một từ có chứa @ đang được hoàn thiện (xem Hoàn thành
Dưới ĐỌC TIẾP bên trên). Điều này được kích hoạt theo mặc định.
huponexit
Nếu được đặt, bash sẽ gửi ĐĂNG KÍ cho tất cả các công việc khi một trình bao đăng nhập tương tác
lối thoát hiểm.
tương tác_comments
Nếu được đặt, hãy cho phép một từ bắt đầu bằng # để gây ra từ đó và tất cả những gì còn lại
các ký tự trên dòng đó sẽ bị bỏ qua trong một trình bao tương tác (xem GÓP Ý
bên trên). Tùy chọn này được kích hoạt theo mặc định.
ống cuối cùng
Nếu được đặt và điều khiển công việc không hoạt động, trình bao sẽ chạy lệnh cuối cùng của
đường ống dẫn không được thực thi ở chế độ nền trong môi trường trình bao hiện tại.
đá thạch anh Nếu được đặt, và giáo dân tùy chọn được bật, các lệnh nhiều dòng được lưu vào
lịch sử với các dòng mới được nhúng thay vì sử dụng dấu chấm phẩy phân tách
có thể ở đâu.
đăng nhập_shell
Trình bao đặt tùy chọn này nếu nó được khởi động dưới dạng trình bao đăng nhập (xem
MỜI bên trên). Giá trị có thể không được thay đổi.
cảnh báo thư
Nếu được đặt và một tệp bash đang kiểm tra thư đã được truy cập kể từ khi
lần cuối cùng nó được kiểm tra, thông báo `` Thư trong tệp thư đã
đọc '' được hiển thị.
no_empty_cmd_completion
Nếu được đặt, và đường dẫn đang được sử dụng, bash sẽ không cố gắng tìm kiếm
PATH để có thể hoàn thành khi hoàn thành được cố gắng hoàn thành với sản phẩm trống
hàng.
nocaseglob
Nếu được đặt, bash khớp với tên tệp theo kiểu không phân biệt chữ hoa chữ thường khi
thực hiện mở rộng tên đường dẫn (xem Tên đường dẫn Sự bành trướng ở trên).
không có trường hợp
Nếu được đặt, bash khớp các mẫu theo kiểu không phân biệt chữ hoa chữ thường khi biểu diễn
khớp trong khi thực thi trường hợp or [[ các lệnh điều kiện.
nullglob
Nếu được đặt, bash cho phép các mẫu không khớp với tệp (xem Tên đường dẫn Sự bành trướng
ở trên) để mở rộng thành một chuỗi null, thay vì chính chúng.
lập trình
Nếu được đặt, các phương tiện hoàn thành có thể lập trình (xem Programmable Hoàn thành
ở trên) được kích hoạt. Tùy chọn này được kích hoạt theo mặc định.
lời nhắc nhở
Nếu được đặt, các chuỗi nhắc sẽ trải qua quá trình mở rộng tham số, thay thế lệnh,
mở rộng số học và loại bỏ dấu ngoặc kép sau khi được mở rộng như mô tả
in KHUYẾN MÃI bên trên. Tùy chọn này được kích hoạt theo mặc định.
limited_shell
Vỏ thiết lập tùy chọn này nếu nó được khởi động ở chế độ hạn chế (xem
HẠN CHẾ SHELL phía dưới). Giá trị có thể không được thay đổi. Điều này không được đặt lại
khi các tệp khởi động được thực thi, cho phép các tệp khởi động khám phá
vỏ có bị hạn chế hay không.
shift_verbose
Nếu được đặt, thay đổi nội trang in thông báo lỗi khi đếm ca
vượt quá số lượng tham số vị trí.
chua ngoa
Nếu được đặt, nguồn (.) nội trang sử dụng giá trị của PATH để tìm thư mục
chứa tệp được cung cấp dưới dạng đối số. Tùy chọn này được kích hoạt bởi
mặc định.
xpg_echo
Nếu được đặt, bỏ lỡ nội trang mở rộng trình tự thoát dấu gạch chéo ngược theo mặc định.

Đình chỉ [-f]
Tạm dừng việc thực thi trình bao này cho đến khi nó nhận được NEXTCONT dấu hiệu. Một đăng nhập
vỏ không thể bị treo; các -f có thể được sử dụng để ghi đè tùy chọn này và buộc
Huyền phù. Trạng thái trả về là 0 trừ khi trình bao là trình bao đăng nhập và -f không phải là
được cung cấp hoặc nếu điều khiển công việc không được bật.

thử nghiệm thể hiện
[ thể hiện ]
Trả về trạng thái 0 (đúng) hoặc 1 (sai) tùy thuộc vào đánh giá của
biểu thức điều kiện thể hiện. Mỗi toán tử và toán hạng phải là một
lý lẽ. Biểu thức bao gồm các phiếu bầu cơ bản được mô tả ở trên theo
ĐIỀU KIỆN BIỂU THỨC. thử nghiệm không chấp nhận bất kỳ lựa chọn nào, cũng như không chấp nhận và
bỏ qua một lập luận của -- như biểu thị sự kết thúc của các lựa chọn.

Các biểu thức có thể được kết hợp bằng cách sử dụng các toán tử sau, được liệt kê trong giảm dần
thứ tự ưu tiên. Việc đánh giá phụ thuộc vào số lượng các đối số; xem bên dưới.
Ưu tiên toán tử được sử dụng khi có năm đối số trở lên.
! thể hiện Đúng nếu thể hiện là sai.
( thể hiện )
Trả về giá trị của thể hiện. Điều này có thể được sử dụng để ghi đè thông thường
ưu tiên của toán tử.
expr1 -a expr2
Đúng nếu cả hai expr1expr2 là sự thật
expr1 -o expr2
Đúng nếu một trong hai expr1 or expr2 là đúng.

thử nghiệm[ đánh giá các biểu thức điều kiện bằng cách sử dụng một bộ quy tắc dựa trên
số đối số.

Đối số 0
Biểu thức là sai.
1 đối số
Biểu thức đúng nếu và chỉ khi đối số không rỗng.
Đối số 2
Nếu đối số đầu tiên là !, biểu thức đúng nếu và chỉ khi thứ hai
đối số là rỗng. Nếu đối số đầu tiên là một trong các điều kiện một bậc
toán tử được liệt kê ở trên dưới ĐIỀU KIỆN BIỂU THỨC, biểu thức là đúng
nếu thử nghiệm một lần là đúng. Nếu đối số đầu tiên không phải là một đơn nguyên hợp lệ
toán tử điều kiện, biểu thức là sai.
Đối số 3
Các điều kiện sau đây được áp dụng theo thứ tự được liệt kê. Nếu thứ hai
đối số là một trong các toán tử điều kiện nhị phân được liệt kê ở trên dưới
ĐIỀU KIỆN BIỂU THỨC, kết quả của biểu thức là kết quả của
kiểm tra nhị phân sử dụng đối số thứ nhất và thứ ba làm toán hạng. Các -a-o
toán tử được coi là toán tử nhị phân khi có ba đối số.
Nếu đối số đầu tiên là !, giá trị là phủ định của hai đối số
kiểm tra bằng cách sử dụng đối số thứ hai và thứ ba. Nếu đối số đầu tiên là chính xác
( và đối số thứ ba chính xác là ), kết quả là bài kiểm tra một đối số
của đối số thứ hai. Nếu không, biểu thức là sai.
Đối số 4
Nếu đối số đầu tiên là !, kết quả là phủ định của đối số ba
biểu thức bao gồm các đối số còn lại. Nếu không, biểu thức
được phân tích cú pháp và đánh giá theo mức độ ưu tiên bằng cách sử dụng các quy tắc được liệt kê
ở trên.
5 đối số trở lên
Biểu thức được phân tích cú pháp và đánh giá theo mức độ ưu tiên bằng cách sử dụng
các quy tắc được liệt kê ở trên.

Khi sử dụng với thử nghiệm or [, Các <> toán tử sắp xếp theo từ điển bằng cách sử dụng ASCII
đặt hàng.

thời gian In người dùng tích lũy và thời gian hệ thống cho trình bao và cho các quy trình đang chạy
từ vỏ. Trạng thái trả về là 0.

bẫy [-lp] [ [arg] sigspec ...]
Lệnh arg được đọc và thực thi khi shell nhận (các) tín hiệu
sigspec. Nếu arg vắng mặt (và có một sigspec) hoặc -, từng được chỉ định
tín hiệu được đặt lại về vị trí ban đầu của nó (giá trị mà nó có khi truy cập vào
vỏ bọc). Nếu arg chuỗi null có phải là tín hiệu được chỉ định bởi mỗi sigspec bị bỏ qua
bởi shell và các lệnh mà nó gọi. Nếu như arg không có mặt và -p đã
được cung cấp, sau đó là các lệnh bẫy được liên kết với mỗi sigspec Được hiển thị. Nếu không
đối số được cung cấp hoặc nếu chỉ -p được đưa ra, bẫy in danh sách các lệnh
liên kết với mỗi tín hiệu. Các -l tùy chọn khiến trình bao in ra danh sách
tên tín hiệu và số lượng tương ứng của chúng. Mỗi sigspec là một tên tín hiệu
được định nghĩa trongtín hiệu.h>, hoặc một số tín hiệu. Tên tín hiệu không phân biệt chữ hoa chữ thường và
các SIG tiền tố là tùy chọn.

Nếu một sigspec is EXIT (0) lệnh arg được thực thi khi thoát khỏi trình bao. Nếu một
sigspec is DEBUG, lệnh arg được thực hiện trước mỗi đơn giản lệnh, cho
yêu cầu, trường hợp yêu cầu, chọn lệnh, mọi số học cho lệnh và trước
lệnh đầu tiên thực thi trong một hàm shell (xem SHELL NGỮ PHÁP bên trên). Tham khảo đến
mô tả của người tống tiền tùy chọn cho xô đẩy nội trang để biết chi tiết về tác dụng của nó
trên DEBUG bẩy. Nếu một sigspec is TRỞ VỀ, lệnh arg được thực hiện mỗi lần
hàm shell hoặc một tập lệnh được thực thi với . or nguồn kết thúc nội trang
đang thực hiện.

Nếu một sigspec is ERR, lệnh arg được thực thi bất cứ khi nào đường ống aa (có thể
bao gồm một lệnh đơn giản), một danh sách hoặc một lệnh ghép trả về
trạng thái thoát khác XNUMX, tuân theo các điều kiện sau. Các ERR bẫy không phải là
được thực thi nếu lệnh không thành công là một phần của danh sách lệnh ngay sau
trong khi or cho đến khi từ khóa, một phần của bài kiểm tra trong một if câu lệnh, một phần của lệnh
thực hiện trong một && or || danh sách ngoại trừ lệnh sau cuối cùng && or ||, bất kì
lệnh trong một đường dẫn nhưng là lệnh cuối cùng hoặc nếu giá trị trả về của lệnh đang là
đảo ngược sử dụng !. Đây là những điều kiện tương tự được tuân theo bởi sai lầm (-e) Lựa chọn.

Các tín hiệu bị bỏ qua khi xâm nhập vào vỏ không thể bị giữ lại hoặc thiết lập lại. Mắc bẫy
các tín hiệu không bị bỏ qua được đặt lại về giá trị ban đầu của chúng trong một vỏ con
hoặc môi trường vỏ con khi một môi trường được tạo. Trạng thái trả lại là sai nếu có
sigspec không có hiệu lực; nếu không thì bẫy trả về true.

kiểu [-aftpP] tên [tên ...]
Không có tùy chọn nào, hãy cho biết cách mỗi tên sẽ được hiểu nếu được sử dụng như một lệnh
Tên. Nếu -t tùy chọn được sử dụng, kiểu in một chuỗi là một trong số bí danh,
từ khóa, chức năng, được xây dựng trong, hoặc là hồ sơ if tên là một bí danh, từ dành riêng cho shell,
chức năng, nội trang hoặc tệp đĩa, tương ứng. Nếu tên không được tìm thấy, sau đó
không có gì được in và trạng thái thoát là false được trả về. Nếu -p Tùy chọn là
đã sử dụng, kiểu hoặc trả về tên của tệp đĩa sẽ được thực thi nếu tên
được chỉ định dưới dạng tên lệnh hoặc không có gì nếu `` type -t name '' sẽ không trả về
hồ sơ. Các -P tùy chọn buộc a PATH tìm kiếm từng tên, ngay cả khi `` type -t name ''
sẽ không trở lại hồ sơ. Nếu một lệnh được băm, -p-P in giá trị băm,
mà không nhất thiết phải là tệp xuất hiện đầu tiên trong PATH. Nếu -a Tùy chọn là
đã sử dụng, kiểu in tất cả những nơi chứa tệp thực thi được đặt tên tên. Điều này
bao gồm bí danh và chức năng, nếu và chỉ khi -p tùy chọn cũng không được sử dụng. Các
bảng lệnh băm không được tham khảo khi sử dụng -a. Các -f tùy chọn ngăn chặn
tra cứu chức năng shell, như với lệnh được xây dựng trong. kiểu trả về true nếu tất cả
các đối số được tìm thấy, sai nếu không tìm thấy bất kỳ đối số nào.

giới hạn [-HSTabcdefilmnpqrstuvx [hạn chế]]
Cung cấp quyền kiểm soát các tài nguyên có sẵn cho trình bao và các quy trình đã bắt đầu
bởi nó, trên các hệ thống cho phép kiểm soát như vậy. Các -H-S các tùy chọn chỉ định rằng
giới hạn cứng hoặc mềm được đặt cho tài nguyên đã cho. Không thể tăng giới hạn cứng
bởi người dùng không phải root sau khi nó được thiết lập; một giới hạn mềm có thể được tăng lên đến giá trị của
giới hạn cứng. Nếu không -H cũng không -S được chỉ định, cả giới hạn mềm và cứng
được thiết lập. Giá trị của hạn chế có thể là một số trong đơn vị được chỉ định cho tài nguyên
hoặc một trong những giá trị đặc biệt cứng, mềm mại, hoặc là vô hạn, viết tắt của hiện tại
giới hạn cứng, giới hạn mềm hiện tại và không giới hạn tương ứng. Nếu hạn chế is
bị bỏ qua, giá trị hiện tại của giới hạn mềm của tài nguyên sẽ được in, trừ khi
-H tùy chọn được đưa ra. Khi nhiều tài nguyên được chỉ định, tên giới hạn và
đơn vị được in trước giá trị. Các tùy chọn khác được hiểu như sau:
-a Tất cả các giới hạn hiện tại đều được báo cáo
-b Kích thước bộ đệm ổ cắm tối đa
-c Kích thước tối đa của các tệp lõi được tạo
-d Kích thước tối đa của phân đoạn dữ liệu của quy trình
-e Mức độ ưu tiên lập lịch tối đa ("tốt đẹp")
-f Kích thước tối đa của các tệp được viết bởi shell và các tệp con của nó
-i Số lượng tín hiệu đang chờ xử lý tối đa
-l Kích thước tối đa có thể bị khóa trong bộ nhớ
-m Kích thước tập hợp cư dân tối đa (nhiều hệ thống không tuân theo giới hạn này)
-n Số bộ mô tả tệp đang mở tối đa (hầu hết các hệ thống không cho phép điều này
giá trị được đặt)
-p Kích thước ống dẫn trong khối 512 byte (điều này có thể không được đặt)
-q Số byte tối đa trong hàng đợi tin nhắn POSIX
-r Mức độ ưu tiên lập lịch thời gian thực tối đa
-s Kích thước ngăn xếp tối đa
-t Lượng thời gian cpu tối đa tính bằng giây
-u Số lượng quy trình tối đa có sẵn cho một người dùng
-v Số lượng bộ nhớ ảo tối đa có sẵn cho shell và trên một số
hệ thống, con cái của nó
-x Số lượng khóa tệp tối đa
-T Số lượng chủ đề tối đa

If hạn chế được đưa ra, và -a tùy chọn không được sử dụng, hạn chế là giá trị mới của
tài nguyên được chỉ định. Nếu không có tùy chọn nào được đưa ra, thì -f được giả định. Giá trị trong
Gia số 1024 byte, ngoại trừ -t, tính bằng giây; -p, được tính bằng đơn vị
Khối 512 byte; và -T, -b, -n-u, là các giá trị chưa được chia tỷ lệ. Sự trở lại
trạng thái là 0 trừ khi một tùy chọn hoặc đối số không hợp lệ được cung cấp hoặc lỗi xảy ra
trong khi thiết lập một giới hạn mới.

cái ô [-p] [-S] [chế độ]
Mặt nạ tạo tệp người dùng được đặt thành chế độ. Nếu chế độ bắt đầu bằng một chữ số, nó là
được hiểu là một số bát phân; nếu không, nó được hiểu là một mặt nạ chế độ tượng trưng
tương tự như được chấp nhận bởi chmod(1). Nếu như chế độ bị bỏ qua, giá trị hiện tại của
mặt nạ được in. Các -S tùy chọn khiến mặt nạ được in ở dạng biểu tượng; các
đầu ra mặc định là một số bát phân. Nếu -p tùy chọn được cung cấp, và chế độ is
bỏ qua, đầu ra ở dạng có thể được sử dụng lại làm đầu vào. Tình trạng trả lại là
0 nếu chế độ đã được thay đổi thành công hoặc nếu không chế độ đối số đã được cung cấp, và
sai khác.

Unalias [-a] [tên ...]
Loại bỏ từng tên từ danh sách các bí danh đã xác định. Nếu -a được cung cấp, tất cả bí danh
định nghĩa bị loại bỏ. Giá trị trả về là true trừ khi được cung cấp tên không phải là một
bí danh xác định.

không đặt [-fv] [-n] [tên ...]
Cho mỗi tên, loại bỏ biến hoặc hàm tương ứng. Nếu -v Tùy chọn là
đưa ra, mỗi tên tham chiếu đến một biến shell và biến đó bị loại bỏ. Đọc-
chỉ các biến mới có thể không được đặt. Nếu -f được chỉ định, mỗi tên đề cập đến một cái vỏ
chức năng và định nghĩa chức năng bị xóa. Nếu -n tùy chọn được cung cấp,
tên là một biến với tên giới thiệu thuộc tính, tên sẽ không được đặt thay vì
biến mà nó tham chiếu. -n không có hiệu lực nếu -f tùy chọn được cung cấp. Nếu không
các tùy chọn được cung cấp, mỗi tên đề cập đến một biến; nếu không có biến bởi
tên đó, bất kỳ chức năng nào có tên đó đều không được đặt. Mỗi biến hoặc hàm chưa đặt
được loại bỏ khỏi môi trường được chuyển cho các lệnh tiếp theo. Nếu có
COMP_WORDBREAKS, RANDOM, GIÂY, DÒNG KHÔNG, HISTCMD, TÊN CHỨC NĂNG, CÁC NHÓM, hoặc là QUAY LẠI
không được đặt, chúng sẽ mất các thuộc tính đặc biệt, ngay cả khi chúng được đặt lại sau đó.
Trạng thái thoát là đúng trừ khi tên là chỉ đọc.

chờ đợi [-n] [n hữu ích. Cảm ơn !]
Chờ từng tiến trình con được chỉ định và trả về trạng thái kết thúc của nó. Mỗi n
có thể là một ID quy trình hoặc một đặc tả công việc; nếu một thông số công việc được đưa ra, tất cả các quy trình
trong đường ống của công việc đó được chờ đợi. Nếu n không được cung cấp, tất cả hiện đang hoạt động
các tiến trình con được chờ đợi và trạng thái trả về là XNUMX. Nếu -n Tùy chọn là
cung cấp, chờ đợi đợi bất kỳ công việc nào kết thúc và trả về trạng thái thoát của nó. Nếu n
chỉ định một quy trình hoặc công việc không tồn tại, trạng thái trả về là 127. Nếu không,
trạng thái trả về là trạng thái thoát của tiến trình hoặc công việc cuối cùng được chờ đợi.

HẠN CHẾ SHELL


If bash được bắt đầu bằng tên ăn vạ, Hoặc -r tùy chọn được cung cấp khi gọi,
vỏ trở nên hạn chế. Một trình bao hạn chế được sử dụng để thiết lập một môi trường hơn
được kiểm soát hơn so với vỏ tiêu chuẩn. Nó hoạt động giống hệt với bash với ngoại lệ
rằng những điều sau đây không được phép hoặc không được thực hiện:

· Thay đổi thư mục với cd

· Thiết lập hoặc bỏ thiết lập các giá trị của SHELL, PATH, ENV, hoặc là BASH_ENV

· Chỉ định tên lệnh chứa /

· Chỉ định một tên tệp có chứa / như một đối số cho . lệnh nội trang

· Chỉ định tên tệp chứa dấu gạch chéo làm đối số cho -p tùy chọn cho
băm lệnh nội trang

· Nhập các định nghĩa chức năng từ môi trường shell khi khởi động

· Phân tích cú pháp giá trị của VỎ từ môi trường shell khi khởi động

· Chuyển hướng đầu ra bằng cách sử dụng các toán tử>,> |, <>,> &, &>, và >> chuyển hướng

· sử dụng giám đốc điều hành lệnh nội trang để thay thế trình bao bằng một lệnh khác

· Thêm hoặc xóa các lệnh nội trang với -f-d các tùy chọn cho cho phép
lệnh nội trang

· sử dụng cho phép lệnh nội trang để bật nội trang vỏ bị vô hiệu hóa

· Xác định -p tùy chọn cho lệnh lệnh nội trang

· Tắt chế độ hạn chế với định +r or định +o hạn chế.

Những hạn chế này được thực thi sau khi mọi tệp khởi động được đọc.

Khi một lệnh được tìm thấy là tập lệnh shell được thực thi (xem COMMAND CHẤP HÀNH
ở trên), ăn vạ tắt bất kỳ hạn chế nào trong trình bao được tạo ra để thực thi tập lệnh.

Sử dụng trực tuyến bash-static bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

  • 1
    XISMuS
    XISMuS
    CHÚ Ý: Bản cập nhật tích lũy 2.4.3 có
    đã được phát hành !! Bản cập nhật hoạt động cho bất kỳ
    phiên bản 2.xx trước đó. Nếu nâng cấp
    từ phiên bản v1.xx, vui lòng tải xuống và
    i ...
    Tải xuống XISMuS
  • 2
    facetracknoir
    facetracknoir
    Chương trình theo dõi mô-đun
    hỗ trợ nhiều trình theo dõi khuôn mặt, bộ lọc
    và giao thức trò chơi. Trong số những người theo dõi
    là SM FaceAPI, AIC Inertial Head
    Trình theo dõi ...
    Tải xuống facetracknoir
  • 3
    Mã QR PHP
    Mã QR PHP
    PHP QR Code là mã nguồn mở (LGPL)
    thư viện để tạo mã QR,
    Mã vạch 2 chiều. Dựa trên
    thư viện libqrencode C, cung cấp API cho
    tạo mã QR mã vạch ...
    Tải xuống mã QR PHP
  • 4
    freeciv
    freeciv
    Freeciv là một trò chơi miễn phí theo lượt
    trò chơi chiến lược nhiều người chơi, trong đó mỗi
    người chơi trở thành lãnh đạo của một
    nền văn minh, chiến đấu để đạt được
    mục tiêu cuối cùng: trở thành ...
    Tải xuống Freeciv
  • 5
    Hộp cát cúc cu
    Hộp cát cúc cu
    Cuckoo Sandbox sử dụng các thành phần để
    theo dõi hành vi của phần mềm độc hại trong một
    Môi trường hộp cát; bị cô lập khỏi
    phần còn lại của hệ thống. Nó cung cấp tự động
    phân tích v...
    Tải xuống Cuckoo Sandbox
  • 6
    LMS-YouTube
    LMS-YouTube
    Phát video YouTube trên LMS (chuyển
    Triode's to YouTbe API v3) Đây là
    một ứng dụng cũng có thể được tìm nạp
    từ
    https://sourceforge.net/projects/lms-y...
    Tải xuống LMS-YouTube
  • Khác »

Lệnh Linux

Ad