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

Ad


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

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

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

Đây là lệnh ksh93 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 mô phỏng trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


ksh, rksh, ksh93, rksh93 - KornShell, một lệnh và lập trình tiêu chuẩn / hạn chế
Ngôn ngữ

SYNOPSIS


ksh [ ± abcefhikmnoprstuvxBCDP ] [ -R tập tin ] [ ± o Lựa chọn ] ... [ - ] [arg ...]
rksh [ ± abcefhikmnoprstuvxBCD ] [ -R tập tin ] [ ± o Lựa chọn ] ... [ - ] [arg ...]

MÔ TẢ


Ksh là một ngôn ngữ lập trình và lệnh thực thi các lệnh được đọc từ một thiết bị đầu cuối hoặc một
tập tin. Rksh là một phiên bản hạn chế của trình thông dịch lệnh ksh; thông dịch lệnh
ksh; Xem sự thỉnh nguyện bên dưới để biết ý nghĩa của các đối số đối với shell.

Các định nghĩa.
A siêu nhân vật là một trong các ký tự sau:

; & ( ) < > dòng mới không gian chuyển hướng

A trống là một chuyển hướng hoặc một không gian. An định danh là một chuỗi các chữ cái, chữ số hoặc
gạch dưới bắt đầu bằng một chữ cái hoặc dấu gạch dưới. Số nhận dạng được sử dụng như các thành phần của
biến những cái tên. MỘT vname là một chuỗi gồm một hoặc nhiều số nhận dạng được phân tách bằng dấu .
tùy chọn trước bởi một .. Tên được sử dụng làm tên hàm và tên biến. MỘT lời là một
trình tự nhân vật từ bộ ký tự được xác định bởi ngôn ngữ hiện tại, ngoại trừ
không được trích dẫn siêu nhân vật.

A lệnh là một chuỗi các ký tự trong cú pháp của ngôn ngữ shell. Cái vỏ
đọc từng lệnh và thực hiện hành động mong muốn hoặc trực tiếp hoặc bằng cách gọi
các tiện ích riêng biệt. Lệnh tích hợp là lệnh được thực hiện bởi trình bao
chính nó mà không tạo ra một quy trình riêng biệt. Một số lệnh được tích hợp hoàn toàn cho
tiện lợi và không được ghi lại ở đây. Tích hợp gây ra tác dụng phụ trong vỏ
môi trường và tích hợp sẵn được tìm thấy trước khi thực hiện tìm kiếm đường dẫn (xem Thực hiện
dưới đây) được ghi lại ở đây. Vì lý do lịch sử, một số cài sẵn này hoạt động
khác với các cài sẵn khác và được gọi là đặc biệt tích hợp sẵn.

Các lệnh.
A lệnh đơn giản là danh sách các phép gán biến (xem Biến bài tập dưới đây) hoặc một
trình tự trống các từ được phân tách có thể đứng trước danh sách các phép gán biến
(xem Môi trường phía dưới). Từ đầu tiên chỉ định tên của lệnh sẽ được thực thi.
Ngoại trừ như được chỉ định bên dưới, các từ còn lại được chuyển làm đối số cho
chỉ huy. Tên lệnh được chuyển dưới dạng đối số 0 (xem giám đốc điều hành(số 2)). Các giá trị của một đơn giản-
lệnh là trạng thái thoát của nó; 0-255 nếu nó kết thúc bình thường; 256+dấu hiệu nếu nó chấm dứt
bất thường (tên của tín hiệu tương ứng với trạng thái thoát có thể nhận được thông qua
các -l tùy chọn của giết tiện ích tích hợp sẵn).

A đường ống dẫn là một chuỗi gồm một hoặc nhiều lệnh cách nhau bởi . Đầu ra tiêu chuẩn của
mỗi lệnh nhưng lệnh cuối cùng được kết nối bằng một đường ống(2) đến đầu vào tiêu chuẩn của phần tiếp theo
chỉ huy. Mỗi lệnh, ngoại trừ có thể là lệnh cuối cùng, được chạy như một quá trình riêng biệt; cái vỏ
đợi lệnh cuối cùng kết thúc. Trạng thái thoát 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. Mỗi đường ống có thể được đặt trước
bởi Ltd lời ! điều này làm cho trạng thái thoát của đường ống trở thành 0 nếu
trạng thái thoát của lệnh cuối cùng là khác 1 và XNUMX nếu trạng thái thoát của lệnh cuối cùng
là 0.

A là một chuỗi gồm một hoặc nhiều đường ống cách nhau bởi ;, &, ⎪ &, &&, hoặc là ⎪⎪
tùy ý chấm dứt bởi ;, &, hoặc là ⎪ &. Trong số năm biểu tượng này, ;, &⎪ & có bằng nhau
mức độ ưu tiên thấp hơn mức độ ưu tiên của &&⎪⎪. Các ký hiệu &&⎪⎪ cũng có bằng
quyền ưu tiên. Dấu chấm phẩy (;) nguyên nhân thực hiện tuần tự của đường ống trước đó; một
dấu và (&) gây ra sự thực thi không đồng bộ của đường ống trước đó (tức là trình bao
làm không đợi cho đường ống đó kết thúc). Biểu tượng ⎪ & gây ra thực thi không đồng bộ
của đường ống dẫn trước với đường ống hai chiều được thiết lập với vỏ mẹ; NS
đầu vào và đầu ra tiêu chuẩn của đường ống sinh sản có thể được ghi vào và đọc từ
shell cha bằng cách áp dụng các toán tử chuyển hướng <&>& với arg p đến các lệnh và bằng cách
sử dụng -p tùy chọn của các lệnh tích hợp đọcin mô tả sau. Biểu tượng &&
(⎪⎪) gây ra theo sau nó chỉ được thực thi nếu đường dẫn trước đó trả về
giá trị không (khác không). Một hoặc nhiều dòng mới có thể xuất hiện trong thay vì dấu chấm phẩy,
để phân cách một lệnh. Người đầu tiên mục của người đầu tiên đường ống dẫn của một đó là một đơn giản
lệnh không bắt đầu bằng chuyển hướng và không xảy ra trong trong khi, cho đến khi, hoặc là if
, có thể đứng trước dấu chấm phẩy. Dấu chấm phẩy này bị bỏ qua trừ khi cho tôi xem tùy chọn
được kích hoạt như được mô tả với định tích hợp bên dưới.

A lệnh là một lệnh đơn giản hoặc một trong các lệnh sau. Trừ khi có quy định khác,
giá trị được trả về bởi một lệnh là giá trị của lệnh đơn giản cuối cùng được thực thi trong
chỉ huy.

cho vname [ in lời ...] ;làm ;xong
Mỗi lần một cho lệnh được thực hiện, vname được đặt thành tiếp theo lời lấy từ
in lời danh sách. Nếu như in lời ... bị bỏ qua, sau đó cho lệnh thực hiện do
một lần cho mỗi tham số vị trí được đặt bắt đầu từ 1 (xem Tham số
Sự bành trướng phía dưới). Việc thực thi kết thúc khi không còn từ nào trong danh sách.

cho (( [expr1] ; [expr2] ; [expr3] )) ;làm ;xong
Biểu thức số học expr1 được đánh giá đầu tiên (xem toán học đánh giá
phía dưới). Biểu thức số học expr2 được đánh giá nhiều lần cho đến khi nó đánh giá
bằng XNUMX và khi khác XNUMX, được thực thi và biểu thức số học expr3
đã đánh giá. Nếu bất kỳ biểu thức nào bị bỏ qua, thì biểu thức đó sẽ hoạt động như thể nó được đánh giá là 1.

chọn vname [ in lời ...] ;làm ;xong
A chọn lệnh in trên lỗi tiêu chuẩn (bộ mô tả tệp 2) tập hợp lờis,
mỗi số đứng trước một số. Nếu như in lời ... bị bỏ qua, sau đó là vị trí
tham số bắt đầu từ 1 được sử dụng thay thế (xem Tham số Sự bành trướng phía dưới). Các
PS3 lời nhắc được in và một dòng được đọc từ đầu vào chuẩn. Nếu dòng này
bao gồm số của một trong những lờis, sau đó là giá trị của biến
vname được đặt thành lời tương ứng với số này. Nếu dòng này trống,
danh sách lựa chọn được in lại. Nếu không, giá trị của biến vname được thiết lập
đến vô giá trị. Nội dung của dòng đọc từ đầu vào chuẩn được lưu trong
biến ĐÁP LẠI. Các được thực thi cho mỗi lựa chọn cho đến khi phá vỡ or cuối của-
hồ sơ đang gặp phải. Nếu ĐÁP LẠI biến được đặt thành vô giá trị bằng cách thực hiện
, sau đó danh sách lựa chọn được in trước khi hiển thị PS3 nhắc nhở cho
lựa chọn tiếp theo.

trường hợp lời in [[(]Belt Hold [⎪ Belt Hold ] ... ) ;; ] ... nó C
A trường hợp lệnh thực hiện liên kết với người đầu tiên Belt Hold phù hợp với
lời. Hình thức của các mẫu giống như được sử dụng để tạo tên tệp
(xem Tập tin Họ tên Thế hệ phía dưới). Các ;; nhà điều hành gây ra việc thực thi trường hợp đến
chấm dứt. Nếu như ;& được sử dụng thay cho ;; danh sách tiếp theo tiếp theo, nếu có, là
Thực thi.

if ;sau đó [ ; elif ;sau đó ] ... [ ;khác ] ; fi
Sản phẩm tiếp theo if được thực thi và nếu nó trả về trạng thái thoát XNUMX, thì
theo sau cái đầu tiên sau đó được thực thi. Nếu không tiếp theo elif is
được thực thi và, nếu giá trị của nó bằng XNUMX, theo dõi tiếp theo sau đó được thực thi.
Thất bại liên tiếp elif , Các khác được thực thi. Nếu if
trạng thái thoát khác không và không có khác , sau đó if lệnh trả về số XNUMX
trạng thái thoát.

trong khi ;làm ;xong
cho đến khi ;làm ;xong
A trong khi lệnh lặp đi lặp lại thực hiện trong khi và, nếu trạng thái thoát của
lệnh cuối cùng trong danh sách bằng XNUMX, thực hiện do ; nếu không thì vòng lặp
chấm dứt. Nếu không có lệnh nào trong do được thực thi, sau đó trong khi lệnh
trả về trạng thái không thoát; cho đến khi có thể được sử dụng thay cho trong khi để phủ nhận vòng lặp
thử nghiệm chấm dứt.

((biểu hiện))
Sản phẩm biểu hiện được đánh giá bằng cách sử dụng các quy tắc đánh giá số học được mô tả
phía dưới. Nếu giá trị của biểu thức số học khác XNUMX, trạng thái thoát là
0, nếu không thì trạng thái thoát là 1.

( )
Thực hiện trong một môi trường riêng biệt. Lưu ý rằng nếu hai cạnh nhau mở
dấu ngoặc đơn là cần thiết để lồng vào nhau, một khoảng trắng phải được chèn để tránh đánh giá là
một lệnh số học như đã mô tả ở trên.

{ ;}
được thực thi đơn giản. Lưu ý rằng không giống như siêu ký tự (), {} đang
Ltd lờis và phải xảy ra ở đầu dòng hoặc sau dấu ; để
được công nhận.

[[ biểu hiện ]]
Đánh giá biểu hiện và trả về trạng thái thoát XNUMX khi biểu hiện là đúng. Nhìn thấy
có điều kiện Biểu thức dưới đây, để mô tả về biểu hiện.

chức năng tên sơn dầu { ;}
tên sơn dầu () { ;}
Xác định một hàm được tham chiếu bởi tên sơn dầu. Một chức năng có tên sơn dầu
chứa một . được gọi là một hàm kỷ luật và một phần của tên sơn dầu
trước cái cuối cùng . phải tham chiếu đến một biến hiện có. Phần thân của hàm
lệnh giữa {}. Một chức năng được xác định với chức năng
tên sơn dầu cú pháp cũng có thể được sử dụng như một đối số cho . lệnh tích hợp đặc biệt
để có được hành vi tương đương như thể tên sơn dầu() cú pháp đã được sử dụng để xác định nó.
(Xem Chức năng phía dưới.)

không gian tên định danh { ;}
Xác định hoặc sử dụng không gian tên định danh và chạy các lệnh trong trong
không gian tên. (Nhìn thấy Họ tên Spaces phía dưới.)

& [ tên [ tranh luận ... ]]
Nguyên nhân tiếp theo lệnh kết thúc bởi & được đặt trong công việc nền
hồ bơi tên. Nếu tên bị bỏ qua một nhóm không tên mặc định được sử dụng. Các lệnh trong một
nhóm nền có thể được thực thi từ xa.

thời gian [ đường ống dẫn ]
If đường ống dẫn được bỏ qua người dùng và thời gian hệ thống cho trình bao hiện tại và đã hoàn thành
các quy trình con được in trên lỗi tiêu chuẩn. Nếu không thì, đường ống dẫn được thực hiện và
thời gian đã trôi qua cũng như người dùng và thời gian hệ thống được in trên lỗi tiêu chuẩn.
Sản phẩm ĐỊ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 sẽ được hiển thị. Nhìn thấy Shell Biến dưới đây để mô tả về
các ĐỊNH DẠNG THỜI GIAN biến.

Các từ dành riêng sau chỉ được công nhận là dành riêng khi chúng là từ đầu tiên
của một lệnh và không được trích dẫn:

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

Biến Bài tập.
Một hoặc nhiều phép gán biến có thể bắt đầu một lệnh đơn giản hoặc có thể là đối số cho
bộ sắp chữ, liệt kê, xuất khẩu, hoặc là chỉ đọc các lệnh tích hợp đặc biệt cũng như các lệnh khác
các lệnh khai báo được tạo dưới dạng các kiểu. Cú pháp cho một chuyển nhượng có dạng:

tên sơn dầu=lời
tên sơn dầu[lời]=lời
Không được phép có khoảng trống giữa tên sơn dầu= hoặc giữa =lời.

tên sơn dầu=(gán_sách)
Không được phép có khoảng trống giữa tên sơn dầu=. Biến tên sơn dầu chưa được đặt
trước khi phân công. Một gán_sách có thể là một trong những điều sau:
lời hữu ích. Cảm ơn !
Chỉ định mảng được lập chỉ mục.
[lời]=lời hữu ích. Cảm ơn !
Phép gán mảng liên kết. Nếu trước bộ sắp chữ -a điều này sẽ
tạo một mảng được lập chỉ mục thay thế.
chuyển nhượng hữu ích. Cảm ơn !
Phép gán biến phức. Điều này tạo ra một biến phức hợp
tên sơn dầu với các biến phụ của biểu mẫu tên sơn dầu.tên, Nơi tên is
phần tên của chuyển nhượng. Giá trị của tên sơn dầu sẽ chứa
tất cả các yếu tố gán. Bài tập bổ sung được thực hiện cho phụ
biến của tên sơn dầu cũng sẽ được hiển thị như một phần của giá trị của
tên sơn dầu. Nếu không chuyển nhượngs được chỉ định, tên sơn dầu sẽ là một
biến phức hợp cho phép xác định các phần tử con của dãy con.
bộ sắp chữ [lựa chọn] chuyển nhượng hữu ích. Cảm ơn !
Phép gán biến lồng nhau. Nhiều bài tập có thể được chỉ định
bằng cách tách mỗi người trong số họ bằng một ;. Giá trị trước đó chưa được đặt
trước khi phân công. Các lệnh khai báo khác như chỉ đọc,
liệt kêvà các lệnh khai báo khác có thể được sử dụng thay cho
bộ sắp chữ.
. tên tập tin
Bao gồm các lệnh gán trong tên tập tin.

Bên cạnh đó, một += có thể được sử dụng thay cho = để biểu thị việc thêm vào hoặc thêm vào
giá trị trước đây. Khi nào += được áp dụng cho một kiểu số học, lời được đánh giá là một
biểu thức số học và được thêm vào giá trị hiện tại. Khi áp dụng cho một biến chuỗi,
giá trị được xác định bởi lời được nối vào giá trị. Đối với các bài tập kết hợp,
giá trị trước đó không được đặt và các giá trị mới được nối vào giá trị hiện tại được cung cấp
rằng các loại tương thích.

Phía bên phải của một phép gán biến sẽ trải qua tất cả sự mở rộng được liệt kê bên dưới
ngoại trừ tách từ, mở rộng dấu ngoặc nhọn và tạo tên tệp. Khi bên tay trái
là một phép gán là một biến ghép và bàn tay phải là tên của một hợp chất
biến, biến phức hợp ở bên phải sẽ được sao chép hoặc nối vào phức hợp
biến bên trái.

Bình luận.
Một từ bắt đầu bằng # khiến từ đó và tất cả các ký tự sau lên đến một dòng mới
được bỏ qua.
Răng cưa.
Từ đầu tiên của mỗi lệnh được thay thế bằng văn bản của một bí danh nếu một bí danh cho điều này
từ đã được xác định. Một bí danh tên bao gồm bất kỳ số ký tự nào ngoại trừ
siêu ký tự, ký tự trích dẫn, ký tự mở rộng tệp, mở rộng tham số và
các ký tự thay thế lệnh, các ký tự /=. Chuỗi thay thế có thể
chứa bất kỳ tập lệnh shell hợp lệ nào bao gồm siêu ký tự được liệt kê ở trên. Từ đầu tiên
của mỗi lệnh trong văn bản được thay thế, khác với bất kỳ lệnh nào đang trong quá trình
được thay thế, sẽ được kiểm tra bí danh. Nếu ký tự cuối cùng của giá trị bí danh là trống
thì từ theo sau bí danh cũng sẽ được kiểm tra để thay thế bí danh. Bí danh
có thể được sử dụng để xác định lại các lệnh tích hợp nhưng không thể được sử dụng để xác định lại
các từ được liệt kê ở trên. Bí danh có thể được tạo và liệt kê với bí danh lệnh và có thể được
loại bỏ với Unalias chỉ huy.
Răng cưa được thực hiện khi các tập lệnh được đọc, không phải khi chúng được thực thi. Do đó, đối với
một bí danh có hiệu lực, bí danh lệnh định nghĩa phải được thực hiện trước
lệnh tham chiếu bí danh được đọc.
Các bí danh sau được biên dịch vào shell nhưng có thể không được đặt hoặc xác định lại:
autoload = ′ sắp chữ -fu ′
command = ′ lệnh '
hợp chất = ′ tập hợp -NS'
fc = hist
float = ′ sắp chữ -lE ′
hàm = ′ tập hợp -NS'
bí danh băm = ′ -t - ′
lịch sử = ′ lịch sử -l ′
số nguyên = ′ tập hợp -li ′
nameref = ′ sắp chữ -n'
nohup = ′ nohup '
r = ′ lịch sử -NS'
lệnh redirect = ′ thực thi ′
lệnh source = ′ . ′
dừng lại = ′ giết -s NGỪNG LẠI'
đình chỉ = ′ giết -s DỪNG $$ ′
lần = ′ { { thời gian;} 2> & 1;} ′
gõ = ′ khi nào -v ′

dấu ngã Thay thế.
Sau khi thay thế bí danh được thực hiện, mỗi từ được kiểm tra để xem liệu nó có bắt đầu bằng
không được trích dẫn ~. Để thay thế dấu ngã, lời cũng đề cập đến lời một phần của tham số
mở rộng (xem Tham số Sự bành trướng phía dưới). Nếu có, thì từ lên đến a / được kiểm tra
để xem nó có khớp với tên người dùng trong cơ sở dữ liệu mật khẩu hay không (Xem getpwname(3).) Nếu khớp
được tìm thấy, ~ và tên đăng nhập phù hợp được thay thế bằng thư mục đăng nhập của
người dùng phù hợp. Nếu không tìm thấy kết quả phù hợp, văn bản gốc được giữ nguyên. MỘT ~ bởi bản thân,
hoặc trước một /, được thay thế bởi $ HOME. Một ~ Theo sau là một + or - được thay thế bởi
giá trị của $ NKT$ OLDPWD tương ứng.

Ngoài ra, khi mở rộng một biến chuyển nhượng, dấu ngã thay thế được cố gắng khi
giá trị của nhiệm vụ bắt đầu bằng ~, và khi một ~ xuất hiện sau một :. Các : Ngoài ra
chấm dứt một ~ tên đăng nhập.

Lệnh Thay thế.
Đầu ra tiêu chuẩn từ danh sách lệnh được đặt trong dấu ngoặc đơn trước dấu đô la
( $( ) ), hoặc trong nhóm dấu ngoặc nhọn trước dấu đô la ( ${ ;} ), hoặc trong một cặp
trọng âm (``) có thể được sử dụng như một phần hoặc toàn bộ từ; các dòng mới ở cuối bị xóa.
Trong trường hợp thứ hai, {} được coi như một từ dành riêng để { phải được theo sau
bởi một trống} phải xuất hiện ở đầu dòng hoặc theo sau ;. Trong lần thứ ba
(lỗi thời), chuỗi giữa các dấu ngoặc kép được xử lý cho các ký tự trích dẫn đặc biệt
trước khi lệnh được thực thi (xem Trích dẫn phía dưới). Lệnh thay thế $ (con mèo tập tin)
có thể được thay thế bằng loại tương đương nhưng nhanh hơn $ (. Lệnh thay thế $(n<#)
sẽ mở rộng đến độ lệch byte hiện tại cho bộ mô tả tệp n. Ngoại trừ hình thức thứ hai,
danh sách lệnh được chạy trong một vỏ con để không có tác dụng phụ nào có thể xảy ra. Cho
hình thức thứ hai, cuối cùng } sẽ được công nhận là một từ dành riêng sau bất kỳ mã thông báo nào.

toán học Thay thế.
Một biểu thức số học được đặt trong dấu ngoặc kép đứng trước dấu đô la ( $ (())
) được thay thế bằng giá trị của biểu thức số học trong dấu ngoặc kép.

Quy trình xét duyệt Thay thế.
Mỗi đối số lệnh của biểu mẫu <( ) or >( ) sẽ chạy quá trình không đồng bộ
được kết nối với một số tệp trong / dev / fd nếu thư mục này tồn tại, hoặc nếu không, một thư mục tạm thời
danh mục. Tên của tệp này sẽ trở thành đối số của lệnh. Nếu hình thức
với > được chọn thì việc viết trên tệp này sẽ cung cấp đầu vào cho . Nếu < Được sử dụng,
thì tệp được truyền dưới dạng đối số sẽ chứa đầu ra của tiến trình. Vì
thí dụ,

dán <(cắt -f1 tệp1) <(cắt -f3 tệp2) | tee >(quy trình1) >(quy trình2)

cắt giảm trường 1 và 3 từ các tệp tệp1tệp2 tương ứng, bột nhão kết quả
cùng nhau và gửi nó đến các quy trình quy trình1quy trình2, cũng như đưa nó lên
đầu ra tiêu chuẩn. Lưu ý rằng tệp, được truyền dưới dạng đối số cho lệnh,
là một UNIX đường ống(2) để các chương trình mong đợi tìm kiếm(2) trên tệp sẽ không hoạt động.

Quy trình thay thế biểu mẫu <( ) cũng có thể được sử dụng với < toán tử chuyển hướng
điều này gây ra đầu ra của trở thành đầu vào tiêu chuẩn hoặc đầu vào cho bất kỳ tệp nào
bộ mô tả được chỉ định.

Tham số Sự bành trướng.
A tham số là một biến, một hoặc nhiều chữ số, hoặc bất kỳ ký tự nào *, @, #, ?, -, $,
!. Một biến được biểu thị bằng một vname. Để tạo một biến có vname chứa một .,
một biến có vname bao gồm tất cả mọi thứ trước cuối cùng . phải đã tồn tại. MỘT
biến có một giá trị và không hoặc nhiều hơn thuộc tính. Biến có thể được chỉ định giá trị
thuộc tính bằng cách sử dụng bộ sắp chữ lệnh tích hợp đặc biệt. Các thuộc tính được hỗ trợ bởi
shell được mô tả sau với bộ sắp chữ lệnh tích hợp đặc biệt. Các biến đã xuất
truyền các giá trị và thuộc tính cho môi trường.

Shell hỗ trợ cả mảng được lập chỉ mục và mảng kết hợp. Một phần tử của một biến mảng
được tham chiếu bởi một chỉ số dưới. Một chỉ số dưới cho một mảng được lập chỉ mục được biểu thị bằng một
số học biểu hiện (xem toán học đánh giá dưới đây) giữa một []. Để chỉ định
các giá trị cho một mảng được lập chỉ mục, sử dụng vname=(giá trị hữu ích. Cảm ơn !) or định -A vname giá trị ... Giá trị
của tất cả các chỉ số phụ không âm phải nằm trong khoảng từ 0 đến 4,194,303. Một tiêu cực
chỉ số dưới được coi như một phần bù so với chỉ số hiện tại tối đa +1 để -1 đề cập đến
phần tử cuối cùng. Mảng được lập chỉ mục có thể được khai báo với -a tùy chọn để bộ sắp chữ. Đã lập chỉ mục
mảng không cần được khai báo. Mọi tham chiếu đến một biến có chỉ số con hợp lệ đều hợp pháp
và một mảng sẽ được tạo nếu cần thiết.

Một mảng kết hợp được tạo với -A tùy chọn để bộ sắp chữ. A chỉ số dưới cho một
mảng kết hợp được biểu thị bằng một chuỗi nằm giữa [].

Tham chiếu đến bất kỳ mảng nào không có chỉ số con tương đương với tham chiếu đến mảng có
chỉ số dưới 0.

Sản phẩm giá trị của một biến có thể được chỉ định bằng văn bản:

vname=giá trị [ vname=giá trị ] ...

or
vname[chỉ số dưới]=giá trị [ vname[chỉ số dưới]=giá trị ] ...
Lưu ý rằng không có khoảng trống nào được phép trước hoặc sau =.
Các thuộc tính được chỉ định bởi bộ sắp chữ lệnh tích hợp đặc biệt áp dụng cho tất cả các phần tử của
mảng. Một phần tử mảng có thể là một biến đơn giản, một biến phức hợp hoặc một mảng
Biến đổi. Một phần tử của một mảng được lập chỉ mục có thể là một mảng được lập chỉ mục hoặc một liên kết
mảng. Một phần tử của một mảng kết hợp cũng có thể là một trong hai. Để tham chiếu đến một mảng
phần tử là một phần của phần tử mảng, hãy nối chỉ số con trong dấu ngoặc. Vì
ví dụ, để chỉ foobar phần tử của một mảng kết hợp được định nghĩa là
phần tử thứ ba của mảng được lập chỉ mục, sử dụng ${vname[3][foobar]}
A tên giới thiệu là một biến tham chiếu đến một biến khác. Một tênref được tạo
với -n thuộc tính của bộ sắp chữ. Giá trị của biến tại thời điểm bộ sắp chữ
lệnh trở thành biến sẽ được tham chiếu bất cứ khi nào biến nameref là
đã sử dụng. Tên của một tênref không được chứa .. Khi một biến hoặc tên hàm
chứa một .và phần tên cho đến tên đầu tiên . khớp với tên của một tênref,
biến được tham chiếu có được bằng cách thay thế phần nameref bằng tên của
biến được tham chiếu bởi tênref. Nếu một tênref được sử dụng làm chỉ mục của một cho vòng lặp, một
tham chiếu tên được thiết lập cho mỗi mục trong danh sách. Một tênref cung cấp một
cách tham chiếu đến biến bên trong một hàm có tên được truyền làm đối số cho một
hàm số. Ví dụ: nếu tên của một biến được chuyển làm đối số đầu tiên cho một
chức năng, lệnh
bộ sắp chữ -n var = $ 1
bên trong hàm gây ra các tham chiếu và gán cho là tài liệu tham khảo và
phép gán cho biến có tên đã được chuyển cho hàm.
Nếu bất kỳ thuộc tính dấu phẩy động nào, -E, -F, hoặc là -Xhoặc thuộc tính số nguyên, -i, Là
đặt cho vname, sau đó giá trị là tùy thuộc vào đánh giá số học như mô tả dưới đây.
Tham số vị trí, tham số được biểu thị bằng số, có thể được gán giá trị với định
lệnh tích hợp đặc biệt. Tham số $0 được đặt từ đối số XNUMX khi trình bao là
viện dẫn.
Nhân vật $ được sử dụng để giới thiệu có thể thay thế thông số.
${tham số}
Vỏ đọc tất cả các ký tự từ ${ để phù hợp } như một phần của cùng một
từ ngay cả khi nó chứa dấu ngoặc nhọn hoặc siêu ký tự. Giá trị, nếu có, của
tham số được thay thế. Niềng răng được yêu cầu khi tham số được theo sau bởi một
chữ cái, chữ số hoặc dấu gạch dưới không được hiểu là một phần của tên của nó,
khi tên biến chứa một .. Các dấu ngoặc nhọn cũng được yêu cầu khi một biến
là chỉ số con trừ khi nó là một phần của Biểu thức số học hoặc Điều kiện
Biểu hiện. Nếu như tham số là một hoặc nhiều chữ số thì nó là một tham số vị trí.
Tham số vị trí có nhiều hơn một chữ số phải được đặt trong dấu ngoặc nhọn. Nếu như
tham số is * or @, sau đó là tất cả các tham số vị trí, bắt đầu bằng $1, là
được thay thế (phân tách bằng ký tự phân cách trường). Nếu một mảng vname với
chỉ số cuối cùng * @hoặc cho các mảng chỉ mục của biểu mẫu sub1 .. sub2. được sử dụng, sau đó
giá trị cho mỗi phần tử giữa sub1sub2 bao gồm (hoặc tất cả các yếu tố
cho *@) được thay thế, phân tách bằng ký tự đầu tiên của giá trị IFS.
$ {#tham số}
If tham số is * or @, số lượng tham số vị trí được thay thế.
Nếu không, độ dài của giá trị tham số được thay thế.
$ {#vname[*]}
$ {#vname[@]}
Số phần tử trong mảng vname được thay thế.

$ {@vname}
Mở rộng đến tên loại (Xem Kiểu Biến dưới đây) hoặc các thuộc tính của biến
được giới thiệu bởi vname.
$ {!vname}
Mở rộng đến tên của biến được tham chiếu bởi vname. Cái này sẽ vname
ngoại trừ khi vname là một tham chiếu tên.
$ {!vname[chỉ số dưới]}
Mở rộng đến tên của chỉ số phụ trừ khi chỉ số dưới is *, @. hoặc dưới dạng sub1 ..
sub2. Khi nào chỉ số dưới is *, danh sách các chỉ số mảng cho vname được tạo ra.
Đối với một biến không phải là một mảng, giá trị là 0 nếu biến được đặt.
Nếu không thì nó là null. Khi nào chỉ số dưới is @, tương tự như trên, ngoại trừ điều đó khi được sử dụng trong
dấu ngoặc kép, mỗi chỉ số con của mảng mang lại một đối số riêng biệt. Khi nào chỉ số dưới is
của hình thức sub1 .. sub2 nó mở rộng đến danh sách các đăng ký giữa sub1
sub2 bao gồm bằng cách sử dụng các quy tắc trích dẫn giống như @.
$ {!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ữ.
${tham số:-lời}
If tham số được đặt và khác rỗng sau đó thay thế giá trị của nó; nếu không thì thay thế
lời.
${tham số:=lời}
If tham số không được đặt hoặc là null, sau đó đặt nó thành lời; giá trị của tham số
sau đó được thay thế. Các tham số vị trí có thể không được chỉ định theo cách này.
${tham số:?lời}
If tham số được đặt và khác rỗng sau đó thay thế giá trị của nó; nếu không, hãy in
lời và thoát khỏi trình bao (nếu không tương tác). Nếu như lời được bỏ qua thì a
thông báo tiêu chuẩn được in.
${tham số:+lời}
If tham số được đặt và khác rỗng sau đó thay thế lời; nếu không thì thay thế
chẳng có gì.
Ở trên, lời không được đánh giá trừ khi nó được sử dụng làm chuỗi thay thế, vì vậy
điều đó, trong ví dụ sau, pwd chỉ được thực thi nếu d không được đặt hoặc là null:
in $ {d: - $ (pwd)}
Nếu dấu hai chấm ( : ) bị bỏ qua khỏi các biểu thức trên, thì shell chỉ kiểm tra
liệu tham số được thiết lập hay không.
${tham số:bù đắp:chiều dài}
${tham số:bù đắp}
Mở rộng đến phần giá trị của tham số bắt đầu từ nhân vật
(tính từ 0) được xác định bằng cách mở rộng bù đắp như một biểu thức số học và
bao gồm số ký tự được xác định bởi biểu thức số học
Được định nghĩa bởi chiều dài. Ở dạng thứ hai, phần còn lại của giá trị được sử dụng. Nếu một
tiêu cực bù đắp đếm ngược từ cuối tham số. Lưu ý rằng một hoặc nhiều
trốngs được yêu cầu trước một dấu trừ để ngăn trình bao thông dịch
nhà điều hành như :-. Nếu tham số is * or @hoặc là một tên mảng được lập chỉ mục bởi * or @,
sau đó bù đắpchiều dài tham chiếu đến chỉ số mảng và số phần tử
tương ứng. Một tiêu cực bù đắp được lấy liên quan đến một lớn hơn mức cao nhất
chỉ số dưới cho các mảng được lập chỉ mục. Thứ tự cho các mảng liên kết là không xác định.
${tham số#Belt Hold}
${tham số##Belt Hold}
Nếu vỏ Belt Hold khớp với phần đầu của giá trị tham số, sau đó
giá trị của phần mở rộng này là giá trị của tham số với phần phù hợp
đã xóa; nếu không thì giá trị của cái này tham số được thay thế. Ở dạng đầu tiên
mẫu so khớp nhỏ nhất bị xóa và ở dạng thứ hai, mẫu lớn nhất
mẫu phù hợp bị xóa. Khi nào tham số is @, *hoặc một biến mảng với
chỉ số dưới @ or *, phép toán chuỗi con lần lượt được áp dụng cho từng phần tử.

${tham số%Belt Hold}
${tham số%%Belt Hold}
Nếu vỏ Belt Hold khớp với giá trị cuối của tham số, sau đó giá trị của
sự mở rộng này là giá trị của tham số với phần phù hợp đã bị xóa;
nếu không thay thế giá trị của tham số. Trong hình thức đầu tiên, nhỏ nhất
mẫu đối sánh bị xóa và ở dạng thứ hai, mẫu đối sánh lớn nhất là
đã xóa. Khi nào tham số is @, *hoặc một biến mảng với chỉ số con @ or *, Các
phép toán chuỗi con lần lượt được áp dụng cho từng phần tử.

${tham số/Belt Hold/chuỗi}
${tham số//Belt Hold/chuỗi}
${tham số/#Belt Hold/chuỗi}
${tham số/%Belt Hold/chuỗi}
Mở rộng tham số và thay thế trận đấu dài nhất của Belt Hold với những gì đã cho chuỗi.
Mỗi lần xuất hiện của \n in chuỗi được thay thế bằng phần của tham số việc này
phù hợp với n-mẫu phụ thứ. Ở dạng đầu tiên, chỉ sự xuất hiện đầu tiên của
Belt Hold được thay thế. Ở dạng thứ hai, mỗi trận đấu cho Belt Hold được thay thế bởi
được chuỗi. Dạng thứ ba hạn chế đối sánh mẫu ở phần đầu của
chuỗi trong khi dạng thứ tư hạn chế khớp mẫu ở cuối chuỗi.
Thời Gian chuỗi là null, Belt Hold sẽ bị xóa và / ở đằng trước chuỗi có thể
được bỏ qua. Khi nào tham số is @, *hoặc một biến mảng với chỉ số con @ or *,
phép toán thay thế lần lượt được áp dụng cho từng phần tử. Trong trường hợp này,
chuỗi một phần của lời sẽ được đánh giá lại cho từng phần tử.

Các tham số sau được thiết lập tự động bởi shell:
# Số lượng tham số vị trí ở dạng thập phân.
- Các tùy chọn được cung cấp cho shell trên lệnh gọi hoặc bởi định chỉ huy.
? Giá trị thập phân được trả về bởi lệnh được thực thi cuối cùng.
$ Số quá trình của shell này.
_ Ban đầu, giá trị của _ là một tên đường dẫn tuyệt đối của shell hoặc script
được thực hiện như được thông qua trong môi trường. Sau đó, nó được chỉ định
đối số cuối cùng của lệnh trước đó. Tham số này không được đặt cho
các lệnh không đồng bộ. Tham số này cũng được sử dụng để giữ
tên của sự kết hợp MAIL khi kiểm tra thư. Trong khi xác định một
biến phức hợp hoặc một kiểu, _ được khởi tạo như một tham chiếu đến hợp chất
biến hoặc kiểu. Khi một chức năng kỷ luật được gọi, _ được khởi tạo
như một tham chiếu đến biến được liên kết với lệnh gọi hàm này.
Cuối cùng khi _ được sử dụng làm tên của biến đầu tiên của một kiểu
định nghĩa, kiểu mới có nguồn gốc từ kiểu của biến đầu tiên (Xem
Kiểu Biến phía dưới.).
! Id tiến trình hoặc tên nhóm và số công việc của nền cuối cùng
lệnh được gọi hoặc công việc gần đây nhất được đặt trong nền với bg
lệnh cài sẵn. Các công việc nền được bắt đầu trong một nhóm được đặt tên sẽ nằm trong
hình thức hồ bơi.con số Ở đâu hồ bơi là tên hồ bơi và con số là số công việc
trong hồ bơi đó.
.sh.command
Khi xử lý một DEBUG bẫy, biến này chứa lệnh hiện tại
dòng sắp chạy.
.sh.edchar
Biến này chứa giá trị của ký tự bàn phím (hoặc chuỗi của
ký tự nếu ký tự đầu tiên là ESC, ascii 033) đã được
đã nhập khi xử lý một TỪ KHÓA bẫy (xem Key Bindings phía dưới). Nếu giá trị
được thay đổi như một phần của hành động bẫy, sau đó giá trị mới thay thế khóa
(hoặc chuỗi khóa) gây ra bẫy.
.sh.edcol
Vị trí ký tự của con trỏ tại thời điểm gần đây nhất TỪ KHÓA
bẩy.
.sh.edmode
Giá trị được đặt thành ESC khi xử lý TỪ KHÓA bẫy khi ở trong vi chèn
chế độ. (Nhìn thấy Vi Chỉnh sửa Chế độ dưới đây.) Nếu không, .sh.edmode là vô hiệu khi
xử lý một TỪ KHÓA bẩy.
.sh.edtext
Các ký tự trong bộ đệm đầu vào tại thời điểm gần đây nhất TỪ KHÓA
cạm bẫy. Giá trị là null khi không xử lý TỪ KHÓA bẩy.
.sh.file
Tên đường dẫn của tệp chứa lệnh hiện tại.
.sh.fun
Tên của hàm hiện tại đang được thực thi.
.sh.cấp độ
Đặt thành độ sâu chức năng hiện tại. Điều này có thể được thay đổi bên trong bẫy GỠ LỖI
và sẽ đặt ngữ cảnh ở mức được chỉ định.
.sh.lineno
Đặt trong bẫy GỠ LỖI thành số đường dây cho người gọi của mỗi chức năng.
.sh.match
Mảng được lập chỉ mục lưu trữ các đối sánh gần đây nhất và đối sánh mẫu phụ
sau khi mẫu có điều kiện đối sánh phù hợp và sau khi mở rộng biến
sử dụng các toán tử #, %, hoặc là /. Các 0-th phần tử lưu trữ kết quả phù hợp hoàn chỉnh
i-NS. phần tử lưu trữ i-thám phụ. Các .sh.match biến
trở nên không được đặt khi biến đã mở rộng được gán một giá trị mới.
.sh.math
Được sử dụng để xác định các hàm số học (xem toán học đánh giá dưới đây).
và lưu trữ danh sách các hàm số học do người dùng xác định.
.sh.tên
Đặt thành tên của biến tại thời điểm mà một hàm kỷ luật là
viện dẫn.
.sh.subscript
Đặt thành chỉ số con tên của biến tại thời điểm mà một kỷ luật
hàm được gọi.
.sh.subshell
Độ sâu hiện tại cho các phiếu thay thế và thay thế lệnh.
.sh.value
Đặt thành giá trị của biến tại thời điểm định or thêm
chức năng kỷ luật được gọi. Khi một hàm số học do người dùng xác định thì
được gọi, giá trị của .sh.value được lưu và .sh.value được đặt thành dài đôi
dấu chấm động chính xác. .sh.value được khôi phục khi hàm trả về.
.sh.version
Đặt thành một giá trị xác định phiên bản của trình bao này.
KSH_VERSION
Tên tham chiếu đến .sh.version.
DÒNG KHÔNG Số dòng hiện tại trong tập lệnh hoặc hàm đang được thực thi.
CAO TUỔI Thư mục làm việc trước đó được thiết lập 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 được xây dựng trong
chỉ huy.
TÙY CHỌN Chỉ mục của đối số tùy chọn cuối cùng được xử lý bởi getopt được xây dựng trong
chỉ huy.
PPID Số tiến trình của cha mẹ của shell.
PWD Thư mục làm việc hiện tại được thiết lập bởi cd chỉ huy.
RANDOM Mỗi khi biến này được tham chiếu, một số nguyên ngẫu nhiên, đồng nhất
được phân phối từ 0 đến 32767, được tạo ra. Chuỗi ngẫu nhiên
số có thể được khởi tạo bằng cách gán một giá trị số cho RANDOM.
ĐÁP LẠI Biến này được đặt bởi chọn tuyên bố và bởi đọc được xây dựng trong
lệnh khi không có đối số nào được cung cấp.
GIÂY
Mỗi lần biến này được tham chiếu, số giây kể từ khi trình bao
lời gọi được trả về. Nếu biến này được gán một giá trị, thì
giá trị được trả về khi tham chiếu sẽ là giá trị đã được chỉ định cộng với
số giây kể từ khi được giao.
SHLVL Một biến số nguyên được tăng lên mỗi khi trình bao được gọi và là
đã xuất khẩu. Nếu như SHLVL không có trong môi trường khi shell được gọi, nó
được đặt thành 1.

Các biến sau được sử dụng bởi shell:
CDPATH Đường dẫn tìm kiếm cho cd chỉ huy.
CỘT
Nếu biến này được đặt, giá trị được sử dụng để xác định chiều rộng của chỉnh sửa
cửa sổ cho các chế độ chỉnh sửa shell và để in chọn danh sách.
EDITOR Nếu TRỰC QUAN biến không được đặt, giá trị của biến này sẽ là
đã kiểm tra các mẫu như được mô tả với TRỰC QUAN bên dưới và
tùy chọn chỉnh sửa tương ứng (xem Lệnh đặc biệt định dưới đây) sẽ được quay
vào.
ENV Nếu biến này được đặt, thì mở rộng tham số, thay thế lệnh và
thay thế số học được thực hiện trên giá trị để tạo tên đường dẫn
của tập lệnh sẽ được thực thi khi trình bao được gọi một cách tương tác
(xem sự thỉnh nguyện phía dưới). Tệp này thường được sử dụng cho bí danhchức năng
định nghĩa. Giá trị mặc định là $ HOME / .kshrc. Trên các hệ thống hỗ trợ
hệ thống rộng /etc/ksh.kshrc tệp khởi tạo, nếu tên tệp được tạo
bằng cách mở rộng ENV bắt đầu với /. / or ./. / hệ thống rộng
tập tin khởi tạo sẽ không được thực thi.
FCEDIT Tên lỗi thời cho tên biên tập viên mặc định cho hist chỉ huy. FCEDIT is
không được sử dụng khi LỊCH SỬ được thiết lập.
ĐĂNG KÝ
Một mẫu xác định tập hợp các tên tệp sẽ bị bỏ qua khi
thực hiện đối sánh tên tệp.
FPATH Đường dẫn tìm kiếm các định nghĩa hàm. Các thư mục trong đường dẫn này là
đã tìm kiếm một tệp có cùng tên với hàm hoặc lệnh khi
chức năng với -u thuộc tính được tham chiếu và khi một lệnh không
tìm. Nếu một tệp thực thi có tên của lệnh đó được tìm thấy, thì
nó được đọc và thực thi trong môi trường hiện tại. không giống PATH, Các
thư mục hiện tại phải được trình bày rõ ràng bởi . hơn là bởi
liền kề : ký tự hoặc phần đầu hoặc phần cuối :.
HISTCMD
Số lượng lệnh hiện tại trong tệp lịch sử.
LỊCH SỬ
Tên cho tên biên tập viên mặc định cho hist chỉ huy.
LỊCH SỬ
Nếu biến này được đặt khi trình bao được gọi, thì giá trị là
tên đường dẫn của tệp sẽ được sử dụng để lưu trữ lịch sử lệnh (xem
Lệnh Nhập lại dưới đây).
KÍCH THƯỚC LỊCH SỬ
Nếu biến này được đặt khi trình bao được gọi, thì số
các lệnh đã nhập trước đó mà shell này có thể truy cập được sẽ
lớn hơn hoặc bằng số này. Giá trị mặc định là 512.
TRANG CHỦ Đối số mặc định (thư mục chính) cho cd chỉ huy.
IFS Các dấu phân tách trường nội bộ, thông thường không gian, chuyển hướngdòng mới được sử dụng
để tách các kết quả của thay thế lệnh hoặc mở rộng tham số và
để tách các trường bằng lệnh tích hợp đọc. Nhân vật đầu tiên của
các IFS biến được sử dụng để phân tách các đối số cho "$ ∗" thay thế
(xem Trích dẫn phía dưới). Mỗi lần xuất hiện của một IFS nhân vật trong
chuỗi được tách, chuỗi đó không có trong không gian lớp nhân vật và bất kỳ
các ký tự liền kề trong IFS đó là trong không gian lớp ký tự, phân tách
một lĩnh vực. Một hoặc nhiều ký tự trong IFS thuộc về không gian tính cách
lớp, phân cách một trường. Ngoài ra, nếu cùng không gian nhân vật xuất hiện
liên tiếp bên trong IFS, ký tự này được coi như thể nó không có trong
không gian lớp học, vì vậy nếu IFS bao gồm hai chuyển hướng ký tự, sau đó là hai
liền kề chuyển hướng các ký tự phân cách một trường rỗng.
CÔNG VIỆC Biến này xác định số lượng công việc nền tối đa đang chạy có thể
chạy tại một thời điểm. Khi đạt đến giới hạn này, trình bao sẽ đợi một công việc
hoàn thành trước khi bắt đầu một công việc mới.
NGÔN NGỮ Biến này 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_ or NGÔN NGỮ.
LC_ALL Biến này ghi đè giá trị của NGÔN NGỮ biến và bất kỳ khác LC_
biến.
LC_THU THẬP
Biến này xác định danh mục ngôn ngữ để đối chiếu ký tự
thông tin.
LC_CTYPE
Biến này xác định danh mục ngôn ngữ để xử lý ký tự
chức năng. Nó xác định các lớp ký tự để đối sánh mẫu (xem
Tập tin Họ tên Thế hệ dưới đây).
LC_NUMERIC
Biến này xác định danh mục ngôn ngữ cho dấu thập phân
nhân vật.
NGÀNH NGHỀ Nếu biến này được đặt, giá trị được sử dụng để xác định độ dài cột
Để in chọn danh sách. Danh sách chọn sẽ in theo chiều dọc cho đến khoảng
hai phần ba NGÀNH NGHỀ dòng được lấp đầy.
MAIL Nếu biến này được đặt thành tên của tệp thư các ĐƯỜNG THƯ biến
không được thiết lập, sau đó trình bao thông báo cho người dùng biết đến thư trong
tệp được chỉ định.
KIỂM TRA THƯ
Biến này chỉ định tần suất (tính bằng giây) mà trình bao sẽ kiểm tra
thay đổi về thời gian sửa đổi của bất kỳ tệp nào được chỉ định bởi
ĐƯỜNG THƯ or MAIL biến. Giá trị mặc định là 600 giây. Khi mà
thời gian trôi qua shell sẽ kiểm tra trước khi đưa ra lời nhắc tiếp theo.
ĐƯỜNG THƯ
Một dấu hai chấm ( : ) danh sách tên tệp được phân tách. Nếu biến này được đặt, thì
shell thông báo cho người dùng về bất kỳ sửa đổi nào đối với các tệp được chỉ định
đã xảy ra trong lần cuối cùng KIỂM TRA THƯ giây. Mỗi tên tệp có thể là
Theo sau là một ? và một tin nhắn sẽ được in. Tin nhắn sẽ
trải qua mở rộng tham số, thay thế lệnh và số học
thay thế bằng biến $_ được định nghĩa là tên của tệp có
đã thay đổi. Thông báo mặc định là bạn thư in $ _.
PATH Đường dẫn tìm kiếm lệnh (xem Thực hiện phía dưới). Người dùng không thể thay đổi
PATH nếu thực hiện theo rksh (Ngoại trư .Hồ sơ).
PS1 Giá trị của biến này được mở rộng để mở rộng tham số, lệnh
phép thay thế và phép thay thế số học để xác định dấu nhắc chính
chuỗi theo mặc định là ``$''. Nhân vật ! trong lời nhắc chính
chuỗi được thay thế bằng lệnh số (xem Lệnh Nhập lại phía dưới). Hai
sự xuất hiện liên tiếp của ! sẽ sản xuất một đĩa đơn ! khi chuỗi lời nhắc
được in.
PS2 Chuỗi lời nhắc phụ, theo mặc định ``> ''.
PS3 Chuỗi lời nhắc lựa chọn được sử dụng trong một chọn vòng lặp, theo mặc định ''#? ''.
PS4 Giá trị của biến này được mở rộng để đánh giá tham số, lệnh
thay thế, và thay thế số học và đứng trước mỗi dòng của một
dấu vết thực hiện. Theo mặc định, PS4 là '+ ''. Ngoài ra khi PS4 chưa được đặt,
lời nhắc theo dõi thực thi cũng là ``+ ''.
SHELL Tên đường dẫn của shell được giữ trong môi trường. Khi gọi, nếu
tên cơ sở của biến này là rsh, rksh, hoặc là krsh, sau đó vỏ trở thành
hạn chế.
ĐỊ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
thông tin thời gian cho các đường ống có tiền tố là thời gian từ dành riêng nên
được hiển thị. Các % ký tự giới thiệu một chuỗi định dạng được mở rộng
đến một giá trị thời gian hoặc thông tin khác. Trình tự định dạng và
nghĩa như sau.
%% 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 là (U + S) / R.

Dấu ngoặc biểu thị các phần tùy chọn. Tùy chọn p là một chữ số chỉ định
các chính xác, số chữ số thập phân sau dấu thập phân. MỘT
giá trị 0 không xuất ra dấu chấm thập phân hoặc phân số. Nhiều nhất là ba
các vị trí sau dấu thập phân có thể được hiển thị; giá trị của p lớn hơn 3
được coi là 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ả giờ nếu lớn hơn
XNUMX, phút và giây của biểu mẫu HHhMMmSS.FFNS. Giá trị của p
xác định xem phân số có được đưa vào hay không.

Tất cả các ký tự khác được xuất ra mà không thay đổi và một dòng mới ở cuối là
thêm. Nếu không được đặt, giá trị mặc định, $ '\ nreal \ t% 2lR \ nuser \ t% 2lU \ nsys% 2lS',
Được sử dụng. Nếu giá trị là null, không có thông tin thời gian nào được hiển thị.

TMOUT Nếu được đặt thành giá trị lớn hơn XNUMX, TMOUT sẽ là giá trị thời gian chờ mặc định
cho đọc lệnh cài sẵn. Các chọn lệnh ghép kết thúc sau
TMOUT giây khi đầu vào là từ một thiết bị đầu cuối. Nếu không, vỏ sẽ
chấm dứt nếu một dòng không được nhập trong số giây quy định
trong khi đọc từ một thiết bị đầu cuối. (Lưu ý rằng shell có thể được biên dịch với
giới hạn tối đa cho giá trị này không được vượt quá.)

TRỰC QUAN Nếu giá trị của biến này khớp với mẫu * [Vv] [Ii] *, sau đó vi
tùy chọn (xem Lệnh đặc biệt định dưới đây) được bật. Nếu giá trị khớp
mô hình * gmacs * , các gmac tùy chọn được bật. Nếu giá trị khớp
mô hình * macs *, sau đó emacs tùy chọn sẽ được bật. Giá trị của
TRỰC QUAN ghi đè giá trị của BIÊN SOẠN.

Vỏ cung cấp các giá trị mặc định cho PATH, PS1, PS2, PS3, PS4, KIỂM TRA THƯ, FCEDIT, TMOUT
IFS, trong khi TRANG CHỦ, SHELL, ENVMAIL hoàn toàn không được thiết lập bởi shell (mặc dù TRANG CHỦ is
đặt bởi đăng nhập(1)). Trên một số hệ thống MAILSHELL cũng được thiết lập bởi đăng nhập(1).

Phần Chia tách.
Sau khi mở rộng tham số và thay thế lệnh, kết quả của các thay thế là
đã quét các ký tự phân tách trường (những ký tự được tìm thấy trong IFS) và chia thành các
các trường mà các ký tự như vậy được tìm thấy. Các trường rỗng rõ ràng ("" or ′ ′) được giữ lại.
Các trường rỗng ngầm định (những trường này là kết quả của thông số không có giá trị hoặc lệnh
thay thế không có đầu ra) bị loại bỏ.

Nếu nẹpexpand (-B) tùy chọn được đặt sau đó mỗi trường kết quả từ IFS đang
đã kiểm tra xem chúng có chứa một hoặc nhiều mẫu dấu ngoặc nhọn hay không {*, *}, {l1..l2} ,
{n1..n2} , {n1..n2% fmt} , {n1..n2 ..n3} , hoặc là {n1..n2 ..n3%fmt} , Nơi * đại diện cho bất kỳ
tính cách, l1,l2 là những chữ cái và n1,n2,n3 là những con số có chữ ký và fmt là một định dạng được chỉ định
như được sử dụng bởi printf. Trong mỗi trường hợp, các trường được tạo bằng cách thêm các ký tự vào trước
các { và nối các ký tự sau } cho mỗi chuỗi được tạo bởi
ký tự giữa {}. Các trường kết quả được kiểm tra để xem chúng có
các mẫu nẹp.

Trong biểu mẫu đầu tiên, một trường được tạo cho mỗi chuỗi giữa {,, giữa ,,,
và giữa ,}. Chuỗi được đại diện bởi * có thể chứa kết hợp nhúng {}
mà không cần trích dẫn. Nếu không, mỗi {} với * phải được trích dẫn.

Ở dạng giây, l1l2 cả hai phải là chữ hoa hoặc cả hai chữ thường
ký tự trong ngôn ngữ C. Trong trường hợp này, một trường được tạo cho mỗi ký tự từ l1
thông qua l2.

Trong các biểu mẫu còn lại, một trường được tạo cho mỗi số bắt đầu từ n1 và tiếp tục
cho đến khi nó đạt đến n2 tăng dần n1 by n3. Những trường hợp mà n3 không được chỉ định cư xử như
if n3 Ở đâu 1 if n1<=n2-1 nếu không thì. Nếu các biểu mẫu chỉ định %fmt bất kỳ cờ định dạng nào,
chiều rộng và giới hạn có thể được chỉ định và fmt có thể kết thúc bằng bất kỳ ký hiệu nào cdiouxX.
Ví dụ, {a, z} {1..5..3% 02d} {b..c} x mở rộng đến 8 lĩnh vực, a01bx, a01cx, a04bx,
a04cx, z01bx, z01cx, z04bxz4cx.

Tập tin Họ tên Thế hệ.
Sau khi tách, mỗi trường được quét các ký tự *, ?, ([ trừ khi -f
tùy chọn đã được thiết lập. Nếu một trong những ký tự này xuất hiện, thì từ đó được coi là
Belt Hold. Mỗi thành phần tên tệp chứa bất kỳ ký tự mẫu nào đều được thay thế bằng
tập hợp các tên được sắp xếp theo từ điển phù hợp với mẫu từ thư mục đó. Nếu không
tên tệp được tìm thấy khớp với mẫu, sau đó thành phần đó của tên tệp được để lại
không thay đổi trừ khi mẫu được bắt đầu bằng ∼ (N) trong trường hợp đó, nó bị loại bỏ như
được mô tả dưới đây. Nếu như ĐĂNG KÝ được đặt, sau đó mỗi thành phần tên tệp phù hợp với
mẫu được xác định bởi giá trị của ĐĂNG KÝ bị bỏ qua khi tạo tên tệp phù hợp.
Tên ... cũng bị bỏ qua. Nếu như ĐĂNG KÝ không được thiết lập, ký tự . tại
phần bắt đầu của mỗi thành phần tên tệp sẽ bị bỏ qua trừ khi ký tự đầu tiên của
mô hình tương ứng với thành phần này là ký tự . chinh no. Lưu ý, điều đó cho các
sử dụng mô hình phù hợp với /. không được đối xử đặc biệt.

* Khớp với bất kỳ chuỗi nào, bao gồm cả chuỗi null. Khi được sử dụng cho tên tệp
mở rộng, nếu sao cầu tùy chọn đang bật, hai cạnh nhau *của chính nó sẽ
khớp với tất cả các tệp và không hoặc nhiều thư mục và thư mục con. Nếu như
Theo sau là một / thì chỉ các thư mục và thư mục con mới khớp nhau.
? Khớp với bất kỳ ký tự đơn nào.
[hữu ích. Cảm ơn !] 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
by - đối sánh từ vựng bất kỳ ký tự nào giữa cặp, bao gồm cả. Nếu
ký tự đầu tiên sau phần mở đầu [ là một ! or ^ thì bất kỳ ký tự nào không
kèm theo là phù hợp. MỘT - có thể được đưa vào bộ ký tự bằng cách đặt nó
là ký tự đầu tiên hoặc cuối cùng.
Trong thời hạn [], các lớp ký tự có thể được chỉ định bằng cú pháp [:tốt nghiệp lớp XNUMX:]
trong đó lớp là một trong các lớp sau được định nghĩa trong tiêu chuẩn ANSI-C:
(Lưu ý rằng lời tương đương với hàng năm cộng với nhân vật _.)
hàng năm alpha 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ố
Trong thời hạn [], một lớp tương đương 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 chính (như
được xác định bởi ngôn ngữ hiện tại) là ký tự c. Trong vòng [],
[.biểu tượng.] khớp với biểu tượng đối chiếu biểu tượng.
A danh sách mẫu là danh sách một hoặc nhiều mẫu được phân tách với nhau bằng & or .
A & biểu thị rằng tất cả các mẫu phải được khớp trong khi yêu cầu rằng chỉ một mẫu
được kêt hợp. Các mẫu tổng hợp có thể được tạo bằng một hoặc nhiều phụ sau
các mẫu:
?(danh sách mẫu)
Tùy chọn khớp với bất kỳ một trong các mẫu đã cho.
*(danh sách mẫu)
Khớp với không hoặc nhiều lần xuất hiện của các mẫu đã cho.
+(danh sách mẫu)
Khớp một hoặc nhiều lần xuất hiện của các mẫu đã cho.
{n}(danh sách mẫu)
Diêm n lần xuất hiện của các mẫu đã cho.
{m,n}(danh sách mẫu)
Các trận đấu từ m đến n lần xuất hiện của các mẫu đã cho. Nếu như m bị bỏ qua, 0
sẽ được sử dụng. Nếu như n được bỏ qua ít nhất m lần xuất hiện sẽ được kết hợp.
@(danh sách mẫu)
Khớp chính xác 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.
Theo mặc định, mỗi mẫu hoặc mẫu phụ sẽ khớp với chuỗi dài nhất có thể nhất quán
với việc tạo ra kết quả phù hợp tổng thể dài nhất. Nếu có thể có nhiều hơn một kết quả phù hợp,
bắt đầu gần nhất với đầu chuỗi sẽ được chọn. Tuy nhiên, đối với mỗi
các mẫu phức hợp trên a - có thể được chèn trước ( để gây ra trận đấu ngắn nhất
với quy định danh sách mẫu được sử dụng.

Thời Gian danh sách mẫu được chứa trong dấu ngoặc đơn, ký tự gạch chéo ngược \ bị đối xử, được đối xử
đặc biệt ngay cả khi bên trong một lớp nhân vật. Tất cả các lần thoát ký tự ANSI-C đều
nhận dạng và khớp với ký tự được chỉ định. Ngoài các trình tự thoát sau
được công nhận:
\d Khớp với bất kỳ ký tự nào trong chữ số lớp học.
\D Khớp với bất kỳ ký tự nào không có trong chữ số lớp học.
\s Khớp với bất kỳ ký tự nào trong không gian lớp học.
\S Khớp với bất kỳ ký tự nào không có trong không gian lớp học.
\w Khớp với bất kỳ ký tự nào trong lời lớp học.
\W Khớp với bất kỳ ký tự nào không có trong lời lớp học.

Một mẫu của biểu mẫu %(cặp mẫu(S)) là một mẫu phụ có thể được sử dụng để đối sánh
biểu cảm của nhân vật. Mỗi cặp mẫu là một chuỗi hai ký tự không thể chứa
& or . Đầu tiên cặp mẫu chỉ định các ký tự bắt đầu và kết thúc cho
trận đấu. Mỗi lần tiếp theo cặp mẫu đại diện cho các ký tự bắt đầu và kết thúc của một
nhóm lồng nhau sẽ bị bỏ qua khi đếm ký tự bắt đầu và kết thúc
diêm. Hành vi không được xác định khi ký tự đầu tiên của một cặp mẫu là alpha-
số ngoại trừ những điều sau:
D Khiến ký tự kết thúc kết thúc tìm kiếm mẫu này mà không có
tìm kiếm một trận đấu.
E Khiến nhân vật kết thúc được hiểu là nhân vật chạy trốn.
L Khiến ký tự kết thúc được hiểu là ký tự trích dẫn gây ra
tất cả các ký tự được bỏ qua khi tìm kiếm một kết quả phù hợp.
Q Khiến ký tự kết thúc được hiểu là ký tự trích dẫn gây ra
tất cả các ký tự khác với bất kỳ ký tự thoát nào được bỏ qua khi nhìn
cho một trận đấu.
Do đó, % ({} Q "E \), khớp với các ký tự bắt đầu từ { cho đến khi phù hợp } không được tìm thấy
đếm bất kỳ { or } nằm bên trong một chuỗi được trích dẫn kép hoặc được đặt trước bởi lối thoát
tính cách \. Không có {} mẫu này khớp với bất kỳ chuỗi ngôn ngữ C nào.

Mỗi mẫu phụ trong một mẫu tổng hợp được đánh số, bắt đầu từ 1, theo vị trí của
( trong khuôn mẫu. Trình tự \n, Nơi n là một chữ số duy nhất và \n đến sau
n-NS. mẫu con, khớp với cùng một chuỗi với chính mẫu con đó.

Cuối cùng một mẫu có thể chứa các mẫu con của biểu mẫu ∼ (lựa chọn:danh sách mẫu), Nơi
hay lựa chọn or :danh sách mẫu có thể được bỏ qua. Không giống như các mẫu phức hợp khác, những
các mẫu con không được tính trong các mẫu con được đánh số. :danh sách mẫu phải được bỏ qua
cho các tùy chọn F, G, N ,V phía dưới. Nếu như lựa chọn hiện tại, nó có thể bao gồm một hoặc nhiều
những điều sau đây:
+ Bật các tùy chọn sau. Đây là mặc định.
- Tắt các tùy chọn sau.
E Phần còn lại của mẫu sử dụng cú pháp biểu thức chính quy mở rộng như
các ví dụ(1) lệnh.
F Phần còn lại của mẫu sử dụng fgrep(1) cú pháp biểu thức.
G Phần còn lại của mẫu sử dụng cú pháp biểu thức chính quy cơ bản như
grep(1) lệnh.
K Phần còn lại của mẫu sử dụng cú pháp mẫu khung. Đây là
mặc định.
N Điều này được bỏ qua. Tuy nhiên, khi nó là chữ cái đầu tiên và được sử dụng với tệp
tạo tên và không có kết quả phù hợp nào xảy ra, mẫu tệp mở rộng thành trống
chuỗi.
X Phần còn lại của mẫu sử dụng cú pháp biểu thức chính quy tăng cường như
các xgrep(1) lệnh.
P Phần còn lại của mẫu sử dụng perl(1) cú pháp biểu thức chính quy. Không
tất cả cú pháp biểu thức chính quy perl hiện đang được triển khai.
V Phần còn lại của mẫu sử dụng cú pháp biểu thức chính quy Hệ thống V.
i Coi trận đấu là không phân biệt chữ hoa chữ thường.
g Gửi kết quả phù hợp dài nhất (tham lam). Đây là mặc định.
l Neo bên trái mẫu. Đây là mặc định cho K các kiểu mẫu.
r Neo bên phải mẫu. Đây là mặc định cho K các kiểu mẫu.
Nếu cả hai lựa chọn:danh sách mẫu được chỉ định, sau đó các tùy chọn chỉ áp dụng cho mẫu-
. Nếu không, các tùy chọn này vẫn có hiệu lực cho đến khi chúng bị vô hiệu hóa bởi
∼ (hữu ích. Cảm ơn !) hoặc ở cuối mẫu phụ có chứa ∼ (hữu ích. Cảm ơn !).

Báo giá.
Mỗi siêu nhân vật được liệt kê trước đó (xem Định nghĩa ở trên) có một ý nghĩa đặc biệt đối với
shell và gây ra sự kết thúc của một từ trừ khi được trích dẫn. Một nhân vật có thể là trích dẫn
(tức là, được tạo ra để thay thế cho chính nó) bằng cách đặt trước nó bằng dấu \. Cặp \dòng mới bị xóa.
Tất cả các ký tự được đặt giữa một cặp dấu ngoặc kép (′ ′) không đứng trước
a $ được trích dẫn. Một trích dẫn duy nhất không thể xuất hiện trong các dấu ngoặc kép. Một trích dẫn duy nhất
chuỗi đứng trước một chuỗi không được trích dẫn $ được xử lý dưới dạng chuỗi ANSI-C ngoại trừ
Sau đây:
\0 Làm cho phần còn lại của chuỗi bị bỏ qua.
\E Tương đương với ký tự thoát (ascii 033),
\e Tương đương với ký tự thoát (ascii 033),
\cx Mở rộng đến điều khiển nhân vật-x.
\NS[.tên.]
Mở rộng thành phần đối chiếu tên.

Dấu ngoặc kép bên trong (""), thay thế tham số và lệnh xảy ra và \ trích dẫn
nhân vật \, `, "$. Một $ phía trước một chuỗi được trích dẫn kép sẽ bị bỏ qua trong
Ngôn ngữ "C" hoặc "POSIX" và có thể khiến chuỗi được thay thế bằng một chuỗi ngôn ngữ cụ thể
nếu không thì. Nghĩa của $ ∗$@ giống hệt nhau khi không được trích dẫn hoặc khi được sử dụng như một
giá trị gán biến hoặc dưới dạng tên tệp. Tuy nhiên, khi được sử dụng làm đối số lệnh,
"$ ∗" tương đương với "1 đô lad$2dhữu ích. Cảm ơn !", Nơi d là nhân vật đầu tiên của IFS biến,
trong khi "$ @" tương đương với "$ 1" "$ 2" .... Dấu ngoặc kép bên trong ngôi mộ (``), \ trích dẫn
nhân vật \, `$. Nếu dấu ngoặc kép xảy ra trong dấu ngoặc kép, thì \ Ngoài ra
trích dẫn nhân vật ".

Có thể loại bỏ ý nghĩa đặc biệt của các từ dành riêng hoặc bí danh bằng cách trích dẫn bất kỳ ký tự nào
của từ dành riêng. Nhận dạng tên hàm hoặc tên lệnh tích hợp được liệt kê
dưới đây không thể được thay đổi bằng cách trích dẫn chúng.

toán học Đánh giá.
Shell thực hiện đánh giá số học để thay thế số học, để đánh giá một
lệnh số học, để đánh giá một chỉ số con của mảng được lập chỉ mục và để đánh giá các đối số
các lệnh tích hợp thay đổicho phép. Đánh giá được thực hiện bằng cách sử dụng độ chính xác kép
dấu chấm động số học hoặc dấu chấm động chính xác kép dài cho các hệ thống cung cấp
kiểu dữ liệu này. Hằng số dấu chấm động tuân theo ngôn ngữ lập trình ANSI-C nổi
quy ước điểm. Hằng số dấu phẩy động Naninf có thể được sử dụng để đại diện cho "không phải
một số "và vô cùng tương ứng. Hằng số nguyên tuân theo lập trình ANSI-C
quy ước hằng số nguyên của ngôn ngữ mặc dù chỉ có hằng số ký tự byte đơn là
được công nhận và phôi nhân vật không được công nhận. Ngoài ra, các hằng số có thể là
mẫu đơn [cơ sở#]n Ở đâu cơ sở là một số thập phân từ hai đến sáu mươi tư đại diện cho
cơ sở số học và n là một số trong cơ số đó. Các chữ số trên 9 được biểu thị bằng
chữ thường, chữ hoa, @_ tương ứng. Đối với các cơ sở nhỏ hơn hoặc
bằng 36, các ký tự viết hoa và viết thường có thể được sử dụng thay thế cho nhau.

Một biểu thức số học sử dụng cùng một cú pháp, mức độ ưu tiên và tính kết hợp của biểu thức
như ngôn ngữ C. Tất cả các toán tử ngôn ngữ C áp dụng cho các đại lượng dấu phẩy động
có thể được sử dụng. Ngoài ra, nhà điều hành ** có thể được sử dụng để tính lũy thừa. Nó có cao hơn
ưu tiên hơn phép nhân và được kết hợp trái. Ngoài ra, khi giá trị của một
Biến số học hoặc biểu thức con có thể được biểu diễn dưới dạng một số nguyên dài, tất cả ngôn ngữ C
các phép toán số học số nguyên có thể được thực hiện. Các biến có thể được tham chiếu bằng tên
trong một biểu thức số học mà không sử dụng cú pháp mở rộng tham số. Khi một
biến được tham chiếu, giá trị của nó được đánh giá như một biểu thức số học.

Có thể sử dụng bất kỳ hàm thư viện toán học nào sau đây trong thư viện toán học C
trong một biểu thức số học:

abs acos acosh mặn asin Atan atan2 atanh cbrt trần nhà sao chép xe đẩy cosh làm sai erfc exp kinh nghiệm2
expm1 fab phân loại fdim có hạn sàn fma fmax Fmin fmod giả thuyết ilogb int vô hạn tội lỗi
isnan bình thường Issubnormal được đặt hàng bằng không j0 j1 jn lgamma đăng nhập nhật ký10 nhật ký2 logb
gần đó tiếp theo kế tiếp pow phần còn lại rint tròn quét ký tên tội Sinh câu hỏi tan
tính tgamma cắt ngắn y0 y1 yn Ngoài ra, các hàm số học có thể được định nghĩa là shell
các chức năng với một biến thể của chức năng tên cú pháp,

chức năng .sh.math.tên danh tính hữu ích. Cảm ơn ! { ;}
Ở đâu tên là tên hàm được sử dụng trong biểu thức số học và mỗi
định danh, danh tính là một tên tham chiếu đến dấu chấm động chính xác kép dài
tranh luận. Giá trị của .sh.value khi hàm trả về là giá trị của nó
hàm số. Các hàm do người dùng xác định có thể có tối đa 3 đối số và ghi đè toán học C
các chức năng của thư viện.

Một đại diện nội bộ của một biến như một dấu chấm động chính xác kép có thể
được chỉ định với -E [n], -F [n], hoặc là -X [n] tùy chọn của bộ sắp chữ tích hợp đặc biệt
chỉ huy. Các -E tùy chọn gây ra việc mở rộng giá trị được biểu diễn bằng cách sử dụng
ký hiệu khoa học khi nó được mở rộng. Đối số tùy chọn tùy chọn n định nghĩa
số lượng các con số đáng kể. Các -F tùy chọn khiến phần mở rộng được biểu diễn dưới dạng
số thập phân động khi nó được mở rộng. Các -X tùy chọn khiến việc mở rộng trở thành
đại diện bằng cách sử dụng %a định dạng được xác định bởi ISO C-99. Đối số tùy chọn tùy chọn n
xác định số vị trí sau dấu thập phân (hoặc cơ số) trong trường hợp này.

Biểu diễn số nguyên bên trong của một biến có thể được chỉ định với -i [n] Lựa chọn
của bộ sắp chữ lệnh tích hợp đặc biệt. Đối số tùy chọn tùy chọn n chỉ định một
cơ sở số học được sử dụng khi mở rộng biến. Nếu bạn không chỉ định một
cơ số học, cơ số 10 sẽ được sử dụng.

Đánh giá số học được thực hiện trên giá trị của mỗi lần gán cho một biến với
-E, -F, -X, hoặc là -i thuộc tính. Gán một số dấu phẩy động cho một biến có kiểu
là một số nguyên khiến phần phân số bị cắt bớt.

Nhắc nhở.
Khi được sử dụng tương tác, trình bao sẽ nhắc với giá trị của PS1 sau khi mở rộng nó cho
mở rộng tham số, thay thế lệnh và thay thế số học, trước khi đọc một
chỉ huy. Ngoài ra, mỗi đơn ! trong dấu nhắc được thay thế bằng số lệnh. MỘT
!! được yêu cầu đặt ! trong lời nhắc. Nếu bất kỳ lúc nào một dòng mới được nhập và hơn thế nữa
đầu vào là cần thiết để hoàn thành một lệnh, sau đó là dấu nhắc phụ (tức là giá trị của PS2)
được phát hành.

có điều kiện Biểu thức.
A có điều kiện biểu hiện được sử dụng với [[ lệnh ghép để kiểm tra các thuộc tính của tệp
và để so sánh các chuỗi. Tách trường và tạo tên tệp không được thực hiện trên
từ giữa [[]]. Mỗi biểu thức có thể được xây dựng từ một hoặc nhiều
sau biểu thức một ngôi hoặc nhị phân:
chuỗi Đúng, nếu chuỗi không rỗng.
-a hồ sơ
Giống như -e phía dưới. Điều này là lỗi thờ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 bình thường.
-g hồ sơ
Đúng, nếu hồ sơ tồn tại và nó có bộ bit setgid của nó.
-k hồ sơ
Đúng, nếu hồ sơ tồn tại và nó có bộ bit dính của nó.
-n chuỗi
Đúng, nếu độ dài của chuỗi là khác XNUMX.
-o ?tùy chọn
Đúng, nếu tùy chọn được đặt tên tùy chọn là một tên tùy chọn hợp lệ.
-o tùy chọn
Đúng, nếu tùy chọn được đặt tên tùy chọn đang bật.
-p hồ sơ
Đúng, nếu hồ sơ tồn tại và là một tệp đặc biệt hoặc một đường ống.
-r hồ sơ
Đúng, nếu hồ sơ tồn tại và có thể đọc được bằng quy trình hiện tại.
-s hồ sơ
Đúng, nếu hồ sơ tồn tại và có kích thước lớn hơn XNUMX.
-t bộ phim
Đúng, nếu số bộ mô tả tệp bộ phim đang mở và được liên kết với một thiết bị đầu cuối
thiết bị.
-u hồ sơ
Đúng, nếu hồ sơ tồn tại và nó có bộ bit setuid của nó.
-v tên
Đúng, nếu biến tên là một tên biến hợp lệ và được đặt.
-w hồ sơ
Đúng, nếu hồ sơ tồn tại và có thể ghi bởi quy trình hiện tại.
-x hồ sơ
Đúng, nếu hồ sơ tồn tại và có thể thực thi được bởi quy trình hiện tại. Nếu như hồ sơ tồn tại và là một
thư mục, sau đó là true nếu quy trình hiện tại có quyền tìm kiếm trong
thư mục.
-z chuỗi
Đúng, nếu độ dài của chuỗi là số không.
-L hồ sơ
Đúng, nếu hồ sơ tồn tại và là một liên kết tượng trưng.
-h 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à thời gian sửa đổi lớn hơn lần truy cập cuối cùng
thời gian.
-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ả của quá trình này.
-G hồ sơ
Đúng, nếu hồ sơ tồn tại và nhóm của nó khớp với id nhóm hiệu quả của quá trình này.
-R tên
Đúng nếu biến tên là một tham chiếu tên.
-S hồ sơ
Đúng, nếu hồ sơ tồn tại và là một ổ cắm.
tệp1 -nt tệp2
Đúng, nếu tệp1 tồn tại và tệp2 không, hoặc tệp1 mới hơn tệp2.
tệp1 -tốt tệp2
Đúng, nếu tệp2 tồn tại và tệp1 không, hoặc tệp1 nó cũ hơn tệp2.
tệp1 -nếu tệp2
Đúng, nếu tệp1tệp2 tồn tại và tham chiếu đến cùng một tệp.
chuỗi == Belt Hold
Đúng, nếu chuỗi diêm Belt Hold. Bất kỳ phần nào của Belt Hold có thể được trích dẫn để làm cho nó
được so khớp dưới dạng một chuỗi. Với việc đối sánh thành công với một mẫu, .sh.match mảng
biến sẽ chứa đối sánh và đối sánh mẫu phụ.
chuỗi = Belt Hold
Giống như == ở trên, nhưng đã lỗi thời.
chuỗi != Belt Hold
Đúng, nếu chuỗi không phù hợp với Belt Hold. Khi mà chuỗi phù hợp với Belt Hold các
.sh.match biến mảng sẽ chứa các đối sánh mẫu và đối sánh mẫu phụ.
chuỗi = ∼ trước
Đúng nếu chuỗi phù hợp với mô hình ∼ (E)trước Ở đâu trước là một thường xuyên kéo dài
biểu hiện.
chuỗi1 < chuỗi2
Đúng, nếu chuỗi1 đến trước chuỗi2 dựa trên giá trị ASCII của các ký tự của chúng.
chuỗi1 > chuỗi2
Đúng, nếu chuỗi1 đến sau chuỗi2 dựa trên giá trị ASCII của các ký tự của chúng.
Các phép so sánh số học lỗi thời sau đây cũng được phép:
kinh nghiệm1 -eq kinh nghiệm2
Đúng, nếu kinh nghiệm1 bằng kinh nghiệm2.
kinh nghiệm1 - Là kinh nghiệm2
Đúng, nếu kinh nghiệm1 Không bằng kinh nghiệm2.
kinh nghiệm1 -lt kinh nghiệm2
Đúng, nếu kinh nghiệm1 ít hơn kinh nghiệm2.
kinh nghiệm1 -gt kinh nghiệm2
Đúng, nếu kinh nghiệm1 lớn hơn kinh nghiệm2.
kinh nghiệm1 -NS kinh nghiệm2
Đúng, nếu kinh nghiệm1 nhỏ hơn hoặc bằng kinh nghiệm2.
kinh nghiệm1 -ge kinh nghiệm2
Đúng, nếu kinh nghiệm1 là lớn hơn hoặc bằng kinh nghiệm2.

Trong mỗi biểu thức trên, nếu hồ sơ có dạng / dev / fd /n, Nơi n là một số nguyên,
sau đó kiểm tra được áp dụng cho tệp đang mở có số bộ mô tả là n.

Một biểu thức phức hợp có thể được xây dựng từ các nguyên thủy này bằng cách sử dụng bất kỳ
theo sau, được liệt kê theo thứ tự ưu tiên giảm dần.
(biểu hiện)
Đúng, nếu biểu hiện là đúng. Dùng để nhóm các biểu thức.
! biểu hiện
Đúng nếu biểu hiện là sai.
biểu thức1 && biểu thức2
Đúng, nếu biểu thức1biểu thức2 cả hai đều đúng.
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.

Đầu ra đầu vào.
Trước khi một lệnh được thực thi, đầu vào và đầu ra của nó có thể được chuyển hướng bằng cách sử dụng
ký hiệu được giải thích bởi shell. Phần sau có thể xuất hiện ở bất kỳ đâu trong một lệnh đơn giản
hoặc có thể đứng trước hoặc theo sau một lệnhkhông được chuyển cho lệnh được gọi. Chỉ huy
thay thế, mở rộng tham số và thay thế số học xảy ra trước lời or chữ số
được sử dụng ngoại trừ như được ghi chú bên dưới. Việc tạo tên tệp chỉ xảy ra nếu trình bao
tương tác và mẫu phù hợp với một tệp duy nhất. Việc tách trường không được thực hiện.

Trong mỗi chuyển hướng sau đây, nếu hồ sơ có dạng / dev / sctp /chủ nhà/cổng,
/ dev / tcp /chủ nhà/cổng, hoặc là / dev / udp /chủ nhà/cổng, Nơi chủ nhà là tên máy chủ hoặc địa chỉ máy chủ lưu trữ và
cổng là một dịch vụ được cung cấp bởi tên hoặc một số cổng số nguyên, sau đó chuyển hướng sẽ cố gắng
để thực hiện một tcp, sctp or udp kết nối với ổ cắm tương ứng.

Không được phép có khoảng cách xen giữa các ký tự của toán tử chuyển hướng.

<lời Sử dụng tệp lời làm đầu vào tiêu chuẩn (bộ mô tả tệp 0).

>lời Sử dụng tệp lời dưới dạng đầu ra tiêu chuẩn (bộ mô tả tệp 1). Nếu tệp không
tồn tại sau đó nó được tạo ra. Nếu tệp tồn tại, và người ăn bám Tùy chọn là
trên, điều này gây ra lỗi; nếu không, nó bị cắt bớt độ dài bằng XNUMX.

>|lời Giống như >, ngoại trừ việc nó ghi đè người ăn bám tùy chọn.

>;lời Ghi đầu ra vào một tệp tạm thời. Nếu lệnh hoàn thành thành công
đổi tên nó thành lời, nếu không, hãy xóa tệp tạm thời. >;lời không thể
được sử dụng với giám đốc điều hành(2). được xây dựng trong.

>>lời Sử dụng tệp lời như đầu ra tiêu chuẩn. Nếu tệp tồn tại, thì kết quả đầu ra là
được thêm vào nó (bằng cách tìm kiếm đầu tiên ở cuối tệp); nếu không, tệp là
tạo ra.

<>lời Mở tập tin lời để đọc và viết dưới dạng đầu ra tiêu chuẩn.

<>;lời Giống như <>lời ngoại trừ nếu lệnh hoàn thành thành công, lời
được cắt ngắn thành phần bù khi hoàn thành lệnh. <>;lời không thể được sử dụng
với giám đốc điều hành(2). được xây dựng trong.

<<[-]lời Đầu vào shell được đọc đến một dòng giống như lời sau bất kỳ
trích dẫn đã bị xóa hoặc ở cuối tệp. Không thay thế tham số,
thay thế lệnh, thay thế số học hoặc tạo tên tệp là
thực hiện trên lời. Tài liệu kết quả, được gọi là tài liệu ở đây, trở thành
đầu vào tiêu chuẩn. Nếu bất kỳ ký tự nào của lời được trích dẫn, sau đó không
giải thích được đặt trên các ký tự của tài liệu; nếu không thì,
mở rộng tham số, thay thế lệnh và thay thế số học
xảy ra \dòng mới bị bỏ qua, và \ phải được sử dụng để trích dẫn các ký tự \,
$, `. Nếu - được thêm vào <<, sau đó tất cả các tab đầu tiên sẽ bị xóa khỏi lời
và từ tài liệu. Nếu như # được thêm vào <<, rồi đến dấu cách và tab ở đầu
sẽ bị xóa khỏi dòng đầu tiên của tài liệu và lên đến dòng tương đương
thụt lề sẽ bị loại bỏ khỏi các dòng còn lại và từ lời. Một tab
điểm dừng được giả định xảy ra ở mỗi 8 cột nhằm mục đích xác định
vết lõm.

<<lời Một dạng ngắn của tài liệu tại đây, trong đó lời trở thành nội dung của
here-document sau khi mở rộng tham số, thay thế lệnh và
xảy ra thay thế số học.

<&chữ số Đầu vào tiêu chuẩn được sao chép từ bộ mô tả tệp chữ số (xem dup(2)).
Tương tự như vậy đối với đầu ra tiêu chuẩn bằng cách sử dụng >&chữ số.

<&chữ số- Bộ mô tả tệp được cung cấp bởi chữ số được chuyển sang đầu vào tiêu chuẩn. Tương tự
cho đầu ra tiêu chuẩn bằng cách sử dụng >&chữ số-.

<& - Đầu vào tiêu chuẩn bị đóng. Tương tự như vậy đối với đầu ra tiêu chuẩn bằng cách sử dụng > & -.

<& p Đầu vào từ quy trình đồng chuyển sang đầu vào chuẩn.

> & p Đầu ra của quy trình đồng được chuyển sang đầu ra tiêu chuẩn.

<# ((thể hiện)) Đánh giá biểu thức số học thể hiện và bộ mô tả tệp vị trí 0 cho
các byte giá trị kết quả từ đầu tệp. Các biến CUREOF
đánh giá tương ứng với bù đắp hiện tại và bù đắp cuối tệp khi
đánh giá expr.

> # ((bù đắp)) Giống như <# ngoại trừ áp dụng cho bộ mô tả tệp 1.

<#Belt Hold Tìm kiếm chuyển tiếp đến đầu dòng tiếp theo chứa Belt Hold.

<##Belt Hold Giống như <# ngoại trừ phần của tệp bị bỏ qua được sao chép
đến đầu ra tiêu chuẩn.

Nếu một trong các phần trên đứng trước một chữ số, không có khoảng trắng xen vào, thì tệp
số mô tả được tham chiếu là số được chỉ định bởi chữ số (thay vì số 0 mặc định hoặc
1). Nếu một trong những điều trên, ngoài > & ->#<# biểu mẫu, đứng trước {tên sơn dầu}
không có khoảng trống xen vào, thì số bộ mô tả tệp> 10 sẽ được chọn bởi
shell và được lưu trữ trong biến tên sơn dầu. Nếu > & - hoặc bất kỳ >#<# hình thức là
trước bởi {tên sơn dầu} giá trị của tên sơn dầu xác định trình mô tả tệp để đóng hoặc
Chức vụ. Ví dụ:

hữu ích. Cảm ơn ! 2> & 1

có nghĩa là bộ mô tả tệp 2 sẽ được mở để viết dưới dạng bản sao của bộ mô tả tệp 1


giám đốc điều hành {n}

có nghĩa là mở tệp có tên hồ sơ để đọc và lưu trữ số bộ mô tả tệp trong biến n.

Thứ tự mà chuyển hướng được chỉ định là quan trọng. Vỏ đánh giá từng
chuyển hướng về (hồ sơ bộ mô tả, hồ sơ) liên kết tại thời điểm đánh giá.
Ví dụ:

hữu ích. Cảm ơn ! 1>biệt danh 2> & 1

đầu tiên liên kết bộ mô tả tệp 1 với tệp biệt danh. Sau đó, nó liên kết bộ mô tả tệp 2
với tệp được liên kết với bộ mô tả tệp 1 (tức là biệt danh). Nếu thứ tự của
chuyển hướng đã bị đảo ngược, bộ mô tả tệp 2 sẽ được liên kết với thiết bị đầu cuối
(giả sử rằng bộ mô tả tệp 1 đã là) và sau đó bộ mô tả tệp 1 sẽ được liên kết với
hồ sơ biệt danh.

Nếu một lệnh được theo sau bởi & và kiểm soát công việc không hoạt động, khi đó tiêu chuẩn mặc định
đầu vào cho lệnh là tệp trống / dev / null. Mặt khác, môi trường cho
thực thi một lệnh chứa các bộ mô tả tệp của trình bao gọi như được sửa đổi bởi
thông số kỹ thuật đầu vào / đầu ra.

Môi trường.
Sản phẩm môi trường (xem về(7)) là danh sách các cặp tên-giá trị được chuyển đến một
chương trình được thực thi theo cách giống như một danh sách đối số bình thường. Những cái tên phải là định danh
và các giá trị là các chuỗi ký tự. Vỏ tương tác với môi trường trong một số
các cách. Khi gọi, shell quét môi trường và tạo một biến cho mỗi tên
tìm thấy, cung cấp cho nó giá trị và thuộc tính tương ứng và đánh dấu nó xuất khẩu. Thực thi
các lệnh kế thừa môi trường. Nếu người dùng sửa đổi giá trị của các biến này hoặc
tạo những cái mới, sử dụng xuất khẩu or bộ sắp chữ -x các lệnh, chúng trở thành một phần của
môi trường. Do đó, môi trường được nhìn thấy bởi bất kỳ lệnh được thực thi nào bao gồm bất kỳ tên nào-
các cặp giá trị ban đầu được kế thừa bởi shell, mà các giá trị của chúng có thể được sửa đổi bởi hiện tại
shell, cộng với bất kỳ bổ sung nào phải được lưu ý trong xuất khẩu or bộ sắp chữ -x lệnh.

Môi trường cho bất kỳ lệnh đơn giản hoặc chức năng có thể được tăng cường bằng cách thêm tiền tố
một hoặc nhiều phép gán biến. Đối số gán biến là một từ có dạng
định danh = giá trị. Như vậy:

TERM = 450 cmd args.
(xuất khẩu THUẬT NGỮ; HẠN = 450; cmd lập luận)

là tương đương (theo như cách thực hiện ở trên của cmd có liên quan ngoại trừ đặc biệt
các lệnh tích hợp được liệt kê bên dưới - những lệnh đi trước bằng dao găm).

Nếu lỗi thời -k tùy chọn được thiết lập, tất cả các các đối số gán biến được đặt trong
môi trường, ngay cả khi chúng xuất hiện sau tên lệnh. Các bản in đầu tiên sau đây a = b c
và sau đó c:

bỏ lỡ a = b c
định -k
bỏ lỡ a = b c
Tính năng này được thiết kế để sử dụng với các tập lệnh được viết cho các phiên bản đầu tiên của shell và
việc sử dụng nó trong các tập lệnh mới không được khuyến khích. Nó có khả năng biến mất vào một ngày nào đó.

Chức năng.
Vì lý do lịch sử, có hai cách để xác định các chức năng, tên() cú pháp và
chức năng tên cú pháp, được mô tả trong Lệnh phần trên. Các hàm Shell được đọc
trong và lưu trữ nội bộ. Tên bí danh được giải quyết khi hàm được đọc. Chức năng
được thực hiện giống như các lệnh với các đối số được truyền dưới dạng tham số vị trí. (Nhìn thấy
Thực hiện phía dưới.)

Các chức năng được xác định bởi chức năng tên cú pháp và được gọi bằng tên thực thi giống nhau
xử lý với tư cách là người gọi và chia sẻ tất cả các tệp và trình bày thư mục làm việc với người gọi.
Các bẫy bị bắt bởi người gọi được đặt lại về hành động mặc định của chúng bên trong hàm. Một cái bẫy
điều kiện không được hàm bắt hoặc bỏ qua khiến hàm kết thúc
và điều kiện để được chuyển cho người gọi. Một cái bẫy trên EXIT đặt bên trong một chức năng là
được thực thi trong môi trường của trình gọi sau khi hàm hoàn thành. Thông thường,
các biến được chia sẻ giữa chương trình gọi và hàm. Tuy nhiên, bộ sắp chữ
lệnh tích hợp đặc biệt được sử dụng trong một hàm xác định các biến cục bộ có phạm vi
bao gồm chức năng hiện tại. Chúng có thể được chuyển cho các hàm mà chúng gọi trong
danh sách gán biến đứng trước cuộc gọi hoặc dưới dạng các đối số được truyền dưới dạng tham chiếu tên.
Các lỗi trong các chức năng trả lại quyền kiểm soát cho người gọi.

Các chức năng được xác định với tên() cú pháp và các chức năng được xác định với chức năng tên
cú pháp được gọi với . tích hợp sẵn đặc biệt được thực thi trong trình gọi
môi trường và chia sẻ tất cả các biến và bẫy với người gọi. Các lỗi trong những
thực thi hàm khiến tập lệnh chứa chúng bị hủy bỏ.

Lệnh tích hợp đặc biệt trở lại được sử dụng để trả về từ các cuộc gọi hàm.

Tên hàm có thể được liệt kê với -f or +f tùy chọn của bộ sắp chữ tích hợp đặc biệt
chỉ huy. Văn bản của các hàm, khi có sẵn, cũng sẽ được liệt kê với -f. Chức năng
có thể được xác định với -f tùy chọn của không đặt lệnh tích hợp đặc biệt.

Thông thường, các hàm không được đặt khi trình bao thực thi một tập lệnh trình bao. Chức năng
cần được xác định trên các lệnh gọi riêng biệt của shell nên được đặt trong một
thư mục và FPATH biến phải chứa tên của thư mục này. Họ cũng có thể
được chỉ định trong ENV tập tin.

Kỷ luật Chức năng.
Mỗi biến có thể có XNUMX hoặc nhiều hàm kỷ luật được liên kết với nó. Cái vỏ
bước đầu hiểu tên ngành học được, định, thêmkhông đặt nhưng có thể được thêm vào
khi xác định kiểu mới. Trên hầu hết các hệ thống, những người khác có thể được thêm vào lúc chạy thông qua C
phần mở rộng giao diện lập trình được cung cấp bởi được xây dựng trong tích hợp tiện ích. Nếu được
kỷ luật được định nghĩa cho một biến, nó được gọi bất cứ khi nào biến đã cho là
được tham chiếu. Nếu biến .sh.value được gán một giá trị bên trong hàm kỷ luật,
thay vào đó, biến được tham chiếu sẽ đánh giá thành giá trị này. Nếu định kỷ luật là
được định nghĩa cho một biến, nó được gọi bất cứ khi nào biến đã cho được gán một giá trị. Nếu như
các thêm kỷ luật được định nghĩa cho một biến, nó được gọi bất cứ khi nào giá trị là
được nối vào biến đã cho. Biến .sh.value được cho giá trị của biến
trước khi gọi kỷ luật và biến sẽ được gán giá trị là .sh.value
sau khi kỷ luật hoàn thành. Nếu như .sh.value không được đặt bên trong kỷ luật, sau đó
giá trị không thay đổi. Nếu không đặt kỷ luật được định nghĩa cho một biến, nó được gọi
bất cứ khi nào biến đã cho không được đặt. Biến sẽ không được đặt trừ khi nó chưa được đặt
rõ ràng từ bên trong chức năng kỷ luật này.

Biến .sh.tên chứa tên của biến mà hàm kỷ luật
được gọi là, .sh.subscript là chỉ số con của biến và .sh.value sẽ chứa
giá trị được chỉ định bên trong định chức năng kỷ luật. Biến _ là một tham chiếu đến
biến bao gồm chỉ số con nếu có. Cho định kỷ luật, thay đổi .sh.value
sẽ thay đổi giá trị được gán. Cuối cùng, việc mở rộng ${.tên}, khi nào tên
là tên của một ngành và không có biến nào của tên này, tương đương với
thay thế lệnh ${ .tên;}.

Họ tên Spaces.
Các lệnh và hàm được thực thi như một phần của của một không gian tên ra lệnh đó
sửa đổi các biến hoặc tạo các biến mới, tạo một biến mới có tên là tên của
không gian tên như được cung cấp bởi định danh trước bởi .. Khi một biến có tên là tên is
được tham chiếu, nó được tìm kiếm đầu tiên để sử dụng .định danh.tên. Tương tự, một hàm
được xác định bởi một lệnh trong không gian tên được tạo bằng cách sử dụng tên không gian tên đứng trước
bởi một ..

Khi của một không gian tên lệnh chứa một không gian tên lệnh, tên của các biến
và các hàm được tạo bao gồm tên biến hoặc hàm đứng trước
danh sách của định danhs từng đứng trước ..

Bên ngoài vùng tên, một biến hoặc hàm được tạo bên trong vùng tên có thể
được tham chiếu bằng cách đặt trước nó với tên không gian tên.

Theo mặc định, các biến bắt đầu bằng .sh đang ở trong sh không gian tên.

Kiểu Biến
Các biến được nhập cung cấp một cách để tạo cấu trúc dữ liệu và các đối tượng. Một loại có thể được xác định
bởi một thư viện được chia sẻ, bởi liệt kê lệnh tích hợp được mô tả bên dưới hoặc bằng cách sử dụng
mới -T tùy chọn của bộ sắp chữ lệnh cài sẵn. Với -T tùy chọn bộ sắp chữ, loại
tên, được chỉ định làm đối số tùy chọn cho -T, được đặt với một phép gán biến phức hợp
xác định loại. Các định nghĩa hàm có thể xuất hiện bên trong biến phức hợp
phân công và chúng trở thành các chức năng kỷ luật cho loại này và có thể được gọi hoặc
được xác định lại theo từng trường hợp của loại. Tên hàm tạo được đối xử đặc biệt.
Nó được gọi cho mỗi trường hợp của kiểu được tạo nhưng không được kế thừa và
không thể được xác định lại cho từng trường hợp.

Khi một kiểu được xác định, một lệnh cài sẵn đặc biệt của tên đó sẽ được thêm vào. Những tích hợp sẵn này
là các lệnh khai báo và tuân theo các quy tắc mở rộng giống như tất cả các lệnh tích hợp đặc biệt
các lệnh được định nghĩa bên dưới đứng trước ††. Các lệnh này sau đó có thể được sử dụng
bên trong các định nghĩa loại khác. Trang người dùng cho các lệnh này có thể được tạo bởi
bằng cách sử dụng --Đàn ông tùy chọn hoặc bất kỳ tùy chọn nào khác -- các tùy chọn được mô tả với getopt. Các -r, -a,
-A, -h-S tùy chọn của bộ sắp chữ được cho phép với mỗi cài đặt sẵn mới này.

Một thể hiện của kiểu được tạo bằng cách gọi tên kiểu theo sau bởi một hoặc nhiều
tên phiên bản. Mỗi phiên bản của kiểu được khởi tạo bằng một bản sao của các biến phụ
ngoại trừ các biến phụ được xác định với -S Lựa chọn. Các biến được xác định với
-S được chia sẻ bởi tất cả các trường hợp của loại này. Mỗi phiên bản có thể thay đổi giá trị của bất kỳ
biến phụ và cũng có thể xác định các hàm kỷ luật mới có cùng tên với
được xác định bởi định nghĩa loại cũng như bất kỳ tên kỷ luật tiêu chuẩn nào. Không bổ sung
các biến phụ có thể được định nghĩa cho bất kỳ trường hợp nào.

Khi xác định một kiểu, nếu giá trị của một biến phụ không được đặt và -r thuộc tính là
được chỉ định, nó làm cho biến phụ trở thành một biến phụ bắt buộc. Bất cứ khi nào một trường hợp
của một kiểu được tạo, tất cả các biến phụ bắt buộc phải được chỉ định. Các biến phụ này
trở nên chỉ đọc trong mỗi trường hợp.

Thời Gian không đặt được gọi trên một biến phụ trong một kiểu và -r thuộc tính chưa được
được chỉ định cho trường này, giá trị được đặt lại thành giá trị mặc định liên kết với
kiểu. Kêu gọi không đặt trên một thể hiện kiểu không được chứa trong kiểu khác sẽ xóa tất cả
biến phụ và chính biến.

Một định nghĩa kiểu có thể được rút ra từ một định nghĩa kiểu khác bằng cách định nghĩa con đầu tiên
tên biến là _ và xác định kiểu của nó là kiểu cơ sở. Mọi định nghĩa còn lại sẽ
là những bổ sung và sửa đổi áp dụng cho kiểu mới. Nếu tên loại mới là
giống loại cơ bản, loại sẽ được thay thế và loại ban đầu sẽ không
còn có thể truy cập được.

Sản phẩm bộ sắp chữ lệnh với -T và không có đối số tùy chọn hoặc toán hạng sẽ viết tất cả các loại
định nghĩa cho đầu ra tiêu chuẩn ở dạng có thể đọc được để tạo ra tất cả chúng
các loại.

Việc làm.
Nếu màn hình tùy chọn của định lệnh được bật, một trình bao tương tác liên kết
việc làm với mỗi đường ống. Nó lưu giữ một bảng các công việc hiện tại, được in bởi việc làm yêu cầu,
và gán cho chúng các số nguyên nhỏ. Khi một công việc được bắt đầu không đồng bộ với &, Các
shell in một dòng trông giống như:

[1] 1234

cho biết rằng công việc được bắt đầu không đồng bộ là công việc số 1 và có một
quy trình (cấp cao nhất), có id quy trình là 1234.

Đoạn này và đoạn tiếp theo yêu cầu các tính năng không có trong tất cả các phiên bản của UNIX và có thể
không áp dụng. Nếu bạn đang thực hiện một công việc và muốn làm việc khác, bạn có thể nhấn phím ^Z
(control-Z) gửi tín hiệu DỪNG cho công việc hiện tại. Vỏ sau đó sẽ bình thường
cho biết rằng công việc đã bị dừng và in một lời nhắc khác. Sau đó bạn có thể
thao tác trạng thái của công việc này, đặt nó ở chế độ nền với bg lệnh, hoặc chạy
một số lệnh khác và sau đó cuối cùng đưa công việc trở lại nền trước với
lệnh nền trước fg. Một ^Z có hiệu lực ngay lập tức và giống như một sự gián đoạn trong đó
đầu ra đang chờ xử lý và đầu vào chưa đọc sẽ bị loại bỏ khi nó được nhập.

Một công việc đang được chạy trong nền sẽ dừng lại nếu nó cố gắng đọc từ thiết bị đầu cuối.
Các công việc nền thường được phép tạo ra đầu ra, nhưng điều này có thể bị vô hiệu hóa bằng cách cho
lệnh tại biển dừng lại. Nếu bạn đặt tùy chọn tty này, thì các công việc nền sẽ dừng lại khi
họ cố gắng tạo ra đầu ra giống như khi họ cố gắng đọc đầu vào.

Nhóm công việc là một tập hợp các công việc bắt đầu với & liên kết với một cái tên.

Có một số cách để tham chiếu đến các công việc trong shell. Một công việc có thể được giới thiệu bởi
id quy trình của bất kỳ quy trình nào của công việc hoặc bởi một trong những điều sau:
%con số
Công việc với số lượng đã cho.
hồ bơi Tất cả các công việc trong nhóm công việc được đặt tên bởi hồ bơi.
hồ bơi.con số
Số công việc con số trong nhóm công việc được đặt tên bởi hồ bơi.
%chuỗi
Bất kỳ công việc nào có dòng lệnh bắt đầu bằng chuỗi.
%?chuỗi
Bất kỳ công việc nào có dòng lệnh chuỗi.
%% Công việc hiện tại.
%+ Tương đương với %%.
%- Công việc trước. Ngoài ra, trừ khi có ghi chú khác, bất cứ nơi nào một công việc có thể
được chỉ định, tên của nhóm công việc nền có thể được sử dụng để đại diện cho tất cả các công việc
trong hồ bơi đó.

Shell học ngay lập tức bất cứ khi nào một tiến trình thay đổi trạng thái. Nó thường thông báo cho bạn
bất cứ khi nào một công việc bị chặn để không thể tiến triển thêm được nữa, nhưng chỉ
trước khi nó in một lời nhắc. Điều này được thực hiện để nó không làm ảnh hưởng đến công việc của bạn.
Sản phẩm thông báo tùy chọn của định lệnh khiến trình bao in các thông báo thay đổi lệnh này
ngay khi chúng xảy ra.

Khi màn hình tùy chọn đang bật, mỗi công việc nền hoàn thành sẽ kích hoạt bất kỳ bộ bẫy nào
cho CHLD.

Khi bạn cố gắng rời khỏi trình bao trong khi công việc đang chạy hoặc dừng lại, bạn sẽ được cảnh báo rằng
Bạn đã ngừng (đang chạy) công việc. ' Bạn có thể sử dụng việc làm lệnh để xem chúng là gì. Nếu như
bạn ngay lập tức cố gắng thoát lại, trình bao sẽ không cảnh báo bạn lần thứ hai và
những công việc đã dừng sẽ bị chấm dứt. Khi một trình bao đăng nhập nhận được tín hiệu HUP, nó sẽ gửi một HUP
báo hiệu cho từng công việc chưa bị từ chối với không nhận lệnh tích hợp được mô tả
phía dưới.

Các tín hiệu.
Các tín hiệu INT và QUIT cho một lệnh được gọi sẽ bị bỏ qua nếu lệnh được theo sau bởi
&màn hình tùy chọn không hoạt động. Nếu không, các tín hiệu có các giá trị được kế thừa bởi
shell từ cha của nó (nhưng cũng xem bẫy lệnh tích hợp bên dưới).

Chấp hành.
Mỗi khi một lệnh được đọc, các thay thế trên được thực hiện. Nếu tên lệnh
phù hợp với một trong những Reduct ® Built-in Lệnh được liệt kê bên dưới, nó được thực thi trong
quy trình shell hiện tại. Tiếp theo, tên lệnh được kiểm tra để xem nó có khớp với người dùng hay không
chức năng xác định. Nếu có, các tham số vị trí sẽ được lưu và sau đó đặt lại thành
đối số của chức năng gọi. Một hàm cũng được thực thi trong quy trình shell hiện tại.
Khi chức năng hoàn thành hoặc đưa ra một trở lại, danh sách tham số vị trí được khôi phục.
Đối với các chức năng được xác định với chức năng tên cú pháp, bất kỳ bẫy nào được đặt trên EXIT trong
chức năng được thực thi. Giá trị thoát của một chức năng là giá trị của lệnh cuối cùng
Thực thi. Nếu tên lệnh không phải là đặc biệt được xây dựng trong lệnh hoặc một người dùng xác định chức năng,
nhưng nó là một trong những lệnh tích hợp được liệt kê bên dưới, nó được thực thi trong shell hiện tại
quá trình.

Các biến shell PATH theo sau là biến FPATH xác định danh sách các thư mục để
tìm kiếm tên lệnh. Các tên thư mục thay thế được phân tách bằng dấu hai chấm (:).
Đường dẫn mặc định là / thùng rác:/ usr / bin: (xác định / thùng rác, / usr / bin, và thư mục hiện tại
theo thứ tự đó). Thư mục hiện tại có thể được chỉ định bằng hai hoặc nhiều dấu hai chấm liền kề, hoặc
bởi dấu hai chấm ở đầu hoặc cuối danh sách đường dẫn. Nếu tên lệnh chứa một /,
thì đường dẫn tìm kiếm không được sử dụng. Nếu không, mỗi thư mục trong danh sách thư mục
Được định nghĩa bởi PATHFPATH được kiểm tra theo thứ tự. Nếu thư mục đang được tìm kiếm là
chứa trong FPATH và chứa một tệp có tên khớp với lệnh đang được tìm kiếm, sau đó
tệp này được tải vào môi trường trình bao hiện tại như thể nó là đối số của .
ngoại trừ rằng chỉ những bí danh đặt trước mới được mở rộng và một chức năng của tên đã cho là
thực hiện như mô tả ở trên.

Nếu thư mục này không có trong FPATH đầu tiên shell xác định xem có tích hợp sẵn
phiên bản của một lệnh tương ứng với một tên đường dẫn nhất định và nếu vậy nó được gọi trong
quá trình hiện tại. Nếu không tìm thấy tích hợp sẵn nào, trình bao sẽ kiểm tra tệp có tên .path in
thư mục này. Nếu tìm thấy và có một dòng của biểu mẫu FPATH =con đường Ở đâu con đường đặt tên cho một
thư mục hiện có thì thư mục đó được tìm kiếm ngay sau
thư mục như thể nó được tìm thấy trong FPATH Biến đổi. Nếu như con đường không bắt đầu bằng /, nó là
được kiểm tra liên quan đến thư mục đang được tìm kiếm.

Sản phẩm .path tệp sau đó được kiểm tra cho một dòng của biểu mẫu PLUGIN_LIB =tên thư viện [ : tên thư viện ]
... Mỗi thư viện được đặt tên bởi tên thư viện sẽ được tìm kiếm như thể nó là một đối số tùy chọn
đến được xây dựng trong -fvà nếu nó có chứa một tên được chỉ định thì nó sẽ được thực thi
thay vì một lệnh bằng tên này. Bất kỳ cài sẵn nào được tải từ một thư viện được tìm thấy theo cách này sẽ
được liên kết với thư mục chứa .path tệp vì vậy nó sẽ chỉ thực thi nếu không
tìm thấy trong một thư mục trước đó.

Cuối cùng, thư mục sẽ được kiểm tra để tìm một tệp có tên đã cho. Nếu tệp có
thực thi quyền nhưng không phải là một a.ra tệp, nó được giả định là tệp chứa shell
các lệnh. Một lớp vỏ riêng biệt được tạo ra để đọc nó. Tất cả các biến không được xuất đều bị xóa
trong trường hợp này. Nếu tệp lệnh shell không có quyền đọc hoặc nếu cài đặt thời gian
và / hoặc người đần độn các bit được đặt trên tệp, sau đó trình bao thực thi một tác nhân có công việc
để thiết lập các quyền và thực thi shell với tệp lệnh shell được truyền lại dưới dạng
một tệp đang mở. Nếu .path chứa một dòng của biểu mẫu tên=giá trị trong đầu tiên hoặc thứ hai
dòng, sau đó là biến môi trường tên được sửa đổi bằng cách thêm trước thư mục được chỉ định
by giá trị vào danh sách thư mục. Nếu như giá trị không phải là một thư mục tuyệt đối, sau đó nó chỉ định
một thư mục liên quan đến thư mục mà tệp thực thi được tìm thấy. Nếu môi trường
biến tên chưa tồn tại nó sẽ được thêm vào danh sách môi trường cho
lệnh được chỉ định. Một lệnh trong ngoặc đơn được thực thi trong một trình bao con mà không cần xóa
các biến không được xuất.

Lệnh Nhập lại.
Văn bản của cuối cùng KÍCH THƯỚC LỊCH SỬ (mặc định 512) các lệnh được nhập từ thiết bị đầu cuối là
được lưu trong một lịch sử tập tin. Tập tin $ HOME / .sh_history được sử dụng nếu LỊCH SỬ biến là
không được đặt hoặc nếu tệp mà nó đặt tên không thể ghi được. Một trình bao có thể truy cập các lệnh của tất cả
tương tác shell sử dụng cùng một tên LỊCH SỬ. Lệnh tích hợp hist được sử dụng
để liệt kê hoặc chỉnh sửa một phần của tệp này. Phần của tệp sẽ được chỉnh sửa hoặc liệt kê
có thể được chọn bằng số hoặc bằng cách cho ký tự đầu tiên hoặc các ký tự của lệnh.
Một lệnh đơn hoặc nhiều lệnh có thể được chỉ định. Nếu bạn không chỉ định một trình chỉnh sửa
chương trình như một đối số để hist thì giá trị của biến LỊCH SỬ Được sử dụng. Nếu
LỊCH SỬ chưa được đặt, biến lỗi thời FCEDIT Được sử dụng. Nếu FCEDIT không được xác định, sau đó
/ usr / bin / ex Được sử dụng. (Các) lệnh đã chỉnh sửa được in và thực thi lại khi rời khỏi
biên tập viên trừ khi bạn bỏ mà không viết. Các -s tùy chọn (và trong các phiên bản lỗi thời,
tên người biên tập -) được sử dụng để bỏ qua giai đoạn chỉnh sửa và để thực hiện lại lệnh. Trong này
trường hợp một tham số thay thế của biểu mẫu xưa=mới có thể được sử dụng để sửa đổi lệnh trước đó
chấp hành. Ví dụ: với bí danh đặt trước r, được đặt bí danh cho ′ Lịch sử -NS', gõ `r
xấu = tốt c'sẽ thực hiện lại lệnh gần đây nhất bắt đầu bằng chữ cái c,
thay thế lần xuất hiện đầu tiên của chuỗi xấu với chuỗi tốt.

Trong dòng Chỉnh sửa Tùy chọn.
Thông thường, mỗi dòng lệnh được nhập từ một thiết bị đầu cuối được nhập đơn giản, theo sau là
dòng mới (`` QUAY LẠI '' hoặc `` LINE FEED '). Nếu một trong hai emacs, gmac, hoặc là vi tùy chọn đang hoạt động,
người dùng có thể chỉnh sửa dòng lệnh. Để ở một trong các chế độ chỉnh sửa này định các
tùy chọn tương ứng. Tùy chọn chỉnh sửa được tự động chọn mỗi khi TRỰC QUAN or
EDITOR biến được gán một giá trị kết thúc bằng một trong hai tên tùy chọn này.

Các tính năng chỉnh sửa yêu cầu thiết bị đầu cuối của người dùng chấp nhận `` RETURN '' dưới dạng ký tự xuống dòng
không có nguồn cấp dòng và khoảng trắng (``) phải ghi đè lên ký tự hiện tại trên
màn hình.

Trừ khi multiline tùy chọn được bật, các chế độ chỉnh sửa triển khai khái niệm nơi người dùng
nhìn qua cửa sổ ở dòng hiện tại. Chiều rộng cửa sổ là giá trị của CỘT if
nó được xác định, ngược lại là 80. Nếu chiều rộng cửa sổ quá nhỏ để hiển thị lời nhắc và
để lại ít nhất 8 cột để nhập dữ liệu đầu vào, dấu nhắc được cắt bớt từ bên trái. Nếu
dòng dài hơn chiều rộng cửa sổ trừ đi hai, một dấu được hiển thị ở cuối
cửa sổ thông báo cho người dùng. Khi con trỏ di chuyển và đến cửa sổ, ranh giới của
cửa sổ sẽ được căn giữa về con trỏ. Dấu hiệu là một > (<, *) nếu dòng kéo dài trên
bên phải (trái, cả hai) bên của cửa sổ.

Các lệnh tìm kiếm trong mỗi chế độ chỉnh sửa cung cấp quyền truy cập vào tệp lịch sử. Chỉ chuỗi
được so khớp, không phải mẫu, mặc dù một ^ trong chuỗi hạn chế trận đấu bắt đầu
tại ký tự đầu tiên trong dòng.

Mỗi chế độ chỉnh sửa có một thao tác để liệt kê các tệp hoặc lệnh phù hợp với
đã nhập một phần từ. Khi áp dụng cho từ đầu tiên trên dòng hoặc từ đầu tiên
sau khi ;, , &, hoặc là (, và từ không bắt đầu bằng ~ hoặc chứa một /, danh sách của
bí danh, chức năng và lệnh thực thi được xác định bởi PATH biến có thể khớp
từ một phần được hiển thị. Nếu không, danh sách các tệp phù hợp với từ đã cho là
hiển thị. Nếu từ đã nhập một phần không chứa bất kỳ ký tự mở rộng tệp nào,
a * được thêm vào trước khi tạo các danh sách này. Sau khi hiển thị danh sách đã tạo,
dòng đầu vào được vẽ lại. Các thao tác này được gọi là liệt kê tên lệnh và tên tệp
danh sách, tương ứng. Có các hoạt động bổ sung, được gọi là tên lệnh
hoàn thành và hoàn thành tên tệp, tính toán danh sách các lệnh hoặc tệp phù hợp,
nhưng thay vì in danh sách, hãy thay thế từ hiện tại bằng toàn bộ hoặc một phần
trận đấu. Để hoàn thành tên tệp, nếu kết quả trùng khớp là duy nhất, / được thêm vào nếu tệp là
thư mục và một khoảng trắng được thêm vào nếu tệp không phải là một thư mục. Nếu không, dài nhất
tiền tố chung cho tất cả các tệp phù hợp thay thế từ. Để hoàn thành tên lệnh,
chỉ phần tên tệp sau phần cuối cùng / được sử dụng để tìm lệnh dài nhất
tiếp đầu ngữ. Nếu chỉ một tên duy nhất phù hợp với tiền tố này, thì từ đó sẽ được thay thế bằng
tên lệnh theo sau bởi một khoảng trắng. Khi sử dụng một chuyển hướng để hoàn thành mà không mang lại một
trận đấu duy nhất, một trận đấu tiếp theo chuyển hướng sẽ cung cấp một danh sách được đánh số các lựa chọn thay thế phù hợp. MỘT
lựa chọn cụ thể có thể được thực hiện bằng cách nhập số lựa chọn theo sau là chuyển hướng.

Key Ràng buộc.
Sản phẩm TỪ KHÓA bẫy có thể được sử dụng để đánh chặn các phím khi chúng được nhập và thay đổi ký tự
điều đó thực sự được nhìn thấy bởi shell. Bẫy này được thực hiện sau mỗi ký tự (hoặc
chuỗi ký tự khi ký tự đầu tiên là ESC) được nhập trong khi đọc từ
phần cuối. Biến .sh.edchar chứa ký tự hoặc chuỗi ký tự
tạo ra cái bẫy. Thay đổi giá trị của .sh.edchar trong hành động bẫy gây ra vỏ
hoạt động như thể giá trị mới được nhập từ bàn phím thay vì giá trị ban đầu
giá trị.

Biến .sh.edcol được đặt thành số cột đầu vào của con trỏ tại thời điểm
đầu vào. Biến .sh.edmode được đặt thành ESC khi ở trong vi chế độ chèn (xem bên dưới) và là
null nếu không. Bằng cách chi tiêu trước $ {. sh.editmode} cho một giá trị được chỉ định cho .sh.edchar nó sẽ
khiến shell chuyển sang chế độ điều khiển nếu nó chưa ở chế độ này.

Bẫy này không được gọi cho các ký tự được nhập làm đối số để chỉnh sửa lệnh, hoặc
trong khi đọc đầu vào để tìm kiếm ký tự.

Emacs Chỉnh sửa Chế độ.
Chế độ này được nhập bằng cách bật emacs or gmac Lựa chọn. Sự khác biệt duy nhất
giữa hai chế độ này là cách chúng xử lý ^T. Để chỉnh sửa, người dùng di chuyển con trỏ tới
điểm cần sửa và sau đó chèn hoặc xóa các ký tự hoặc từ nếu cần.
Tất cả các lệnh chỉnh sửa là ký tự điều khiển hoặc chuỗi thoát. Ký hiệu cho
các ký tự điều khiển là dấu mũ (^) theo sau là ký tự. Ví dụ, ^F
ký hiệu để kiểm soát F. Điều này được nhập bằng cách nhấn phím `f 'trong khi giữ phím` `CTRL' '
(phím điều khiển. Khóa `` SHIFT '' là không trầm cảm. (Ký hiệu ^? cho biết DEL
(phím xoá.)

Kí hiệu cho các chuỗi thoát là M- theo sau là một ký tự. Ví dụ, Mf
(phát âm là Meta f) được nhập bằng cách nhấn ESC (ascii 033) theo sau là `f '. (MF sẽ
là ký hiệu cho ESC theo sau là `SHIFT '(viết hoa)` F'.)

Tất cả các lệnh chỉnh sửa hoạt động từ bất kỳ vị trí nào trên dòng (không chỉ ở phần đầu). Không
phím `` RETURN '' hoặc phím `` LINE FEED '' được nhập sau khi chỉnh sửa lệnh ngoại trừ khi được lưu ý.

^F Di chuyển con trỏ về phía trước (phải) một ký tự.
M- [C Di chuyển con trỏ về phía trước (phải) một ký tự.
Mf Di chuyển con trỏ về phía trước một từ. (Các emacs ý tưởng của người biên tập về một từ là một chuỗi
các ký tự chỉ bao gồm các chữ cái, chữ số và dấu gạch dưới.)
^B Di chuyển con trỏ về phía sau (trái) một ký tự.
M- [D Di chuyển con trỏ về phía sau (trái) một ký tự.
Mb Di chuyển con trỏ về phía sau một từ.
^A Di chuyển con trỏ đến đầu dòng.
M- [H Di chuyển con trỏ đến đầu dòng.
^E Di chuyển con trỏ đến cuối dòng.
CỦA TÔI Di chuyển con trỏ đến cuối dòng.
^]xe tăng Di chuyển con trỏ tới ký tự xe tăng trên dòng hiện tại.
M- ^]xe tăng Di chuyển con trỏ về phía sau ký tự xe tăng trên dòng hiện tại.
^ X ^ X Chuyển con trỏ và đánh dấu.
Xóa (Ký tự xóa do người dùng xác định như được xác định bởi tại biển(1) lệnh, thường là ^H or
#.) Xóa ký tự trước đó.
tiếp theo (Người dùng xác định ký tự tiếp theo theo nghĩa đen như được định nghĩa bởi tại biển(1) lệnh, hoặc ^V if
không được xác định.) Loại bỏ các tính năng chỉnh sửa của ký tự tiếp theo (nếu có).
^D Xóa ký tự hiện tại.
Md Xóa từ hiện tại.
M- ^ H (Meta-backspace) Xóa từ trước đó.
Mh Xóa từ trước đó.
M- ^? (Meta-DEL) Xóa từ trước đó (nếu ký tự ngắt của bạn là ^? (DEL,
mặc định) thì lệnh này sẽ không hoạt động).
^T Chuyển đổi ký tự hiện tại với ký tự trước đó và đưa con trỏ vào
emacs chế độ. Chuyển đổi hai ký tự trước đó trong gmac chế độ.
^C Viết hoa ký tự hiện tại.
Mc Viết hoa từ hiện tại.
Ml Thay đổi từ hiện tại thành chữ thường.
^K Xóa từ con trỏ đến cuối dòng. Nếu đứng trước một số
tham số có giá trị nhỏ hơn vị trí con trỏ hiện tại, sau đó xóa khỏi
vị trí cho trước con trỏ. Nếu đứng trước một tham số số có
giá trị lớn hơn vị trí con trỏ hiện tại, sau đó xóa khỏi con trỏ lên đến
vị trí con trỏ đã cho.
^W Giết từ con trỏ đến dấu.
Mp Đẩy vùng từ con trỏ đến dấu trên ngăn xếp.
giết (Ký tự kill do người dùng xác định như được định nghĩa bởi lệnh stty, thường là ^G or @.)
Diệt toàn bộ dòng hiện tại. Nếu hai giết các ký tự được nhập liên tiếp,
tất cả các ký tự tiêu diệt từ đó trở đi gây ra một nguồn cấp dữ liệu dòng (hữu ích khi sử dụng giấy
thiết bị đầu cuối).
^Y Khôi phục mục cuối cùng bị xóa khỏi dòng. (Yank mục trở lại dòng.)
^L Cấp dòng và in dòng hiện tại.
M- ^ L Xóa màn hình.
^@ (Ký tự rỗng) Đặt dấu.
M-không gian (Không gian meta) Đặt dấu.
^J (Dòng mới) Thực hiện dòng hiện tại.
^M (Quay lại) Thực hiện dòng hiện tại.
ôi Ký tự cuối tệp, bình thường ^D, được xử lý dưới dạng Phần cuối của tệp chỉ khi
dòng hiện tại là null.
^P Tìm nạp lệnh trước đó. Mỗi lần ^P được nhập lại lệnh trước đó trong
thời gian được truy cập. Di chuyển trở lại một dòng khi không ở trên dòng đầu tiên của đa
lệnh dòng.
M- [A Nếu con trỏ ở cuối dòng, nó tương đương với ^R với chuỗi định
vào nội dung của dòng hiện tại. Nếu không, nó tương đương với ^ P.
M- Tìm nạp dòng lịch sử gần đây nhất (lâu đời nhất).
M-> Tìm nạp dòng lịch sử gần đây nhất (trẻ nhất).
^N Tìm nạp dòng lệnh tiếp theo. Mỗi lần ^N được nhập vào dòng lệnh tiếp theo về phía trước
trong thời gian được truy cập.
M- [B Tương đương với ^ N.
^Rchuỗi Đảo ngược lịch sử tìm kiếm cho một dòng lệnh trước đó chứa chuỗi. Nếu một
tham số của XNUMX được đưa ra, tìm kiếm được chuyển tiếp. Chuỗi bị chấm dứt bởi một
`RETURN '(QUAY LẠI) hoặc` `DÒNG MỚI' '. Nếu chuỗi đứng trước một ^, dòng phù hợp phải
bắt đầu với chuỗi. Nếu chuỗi bị bỏ qua, sau đó dòng lệnh tiếp theo chứa
gần đây nhất chuỗi được truy cập. Trong trường hợp này, tham số bằng XNUMX đảo ngược
hướng tìm kiếm.
^O Hoạt động - Thực hiện dòng hiện tại và tìm nạp dòng tiếp theo liên quan đến dòng hiện tại
dòng từ tệp lịch sử.
M-chữ số (Escape) Xác định tham số số, các chữ số được lấy làm tham số cho
lệnh tiếp theo. Các lệnh chấp nhận một tham số là ^F, ^B, Xóa, ^C, ^D,
^K, ^R, ^P, ^N, ^], NS-., M- ^], NS-_, M- =, Mb, Mc, Md, Mf, Mh, MlM- ^ H.
M-bức thư Phím mềm - Danh sách bí danh của bạn được tìm kiếm bí danh theo tên _bức thư và nếu
một bí danh của tên này được xác định, giá trị của nó sẽ được chèn vào hàng đợi đầu vào.
Sản phẩm bức thư không được là một trong các siêu chức năng ở trên.
NS-[bức thư Phím mềm - Danh sách bí danh của bạn được tìm kiếm bí danh theo tên __bức thư và nếu
một bí danh của tên này được xác định, giá trị của nó sẽ được chèn vào hàng đợi đầu vào.
Điều này có thể được sử dụng để lập trình các phím chức năng trên nhiều thiết bị đầu cuối.
NS-. Từ cuối cùng của lệnh trước đó được chèn trên dòng. Nếu đứng trước một
tham số số, giá trị của tham số này xác định từ nào cần chèn
chứ không phải là từ cuối cùng.
NS-_ Giống như NS-..
NS-* Cố gắng tạo tên tệp trên từ hiện tại. Dấu hoa thị được thêm vào nếu
từ không khớp với bất kỳ tệp nào hoặc chứa bất kỳ ký tự mẫu đặc biệt nào.
M-ESC Hoàn thành lệnh hoặc tên tệp như mô tả ở trên.
^I chuyển hướng Cố gắng hoàn thành lệnh hoặc tên tệp như được mô tả ở trên. Nếu một phần
hoàn thành xảy ra, lặp lại điều này sẽ hoạt động như thể M- = đã được nhập. Nếu không
trận đấu được tìm thấy hoặc nhập sau không gian, Một chuyển hướng được chèn vào.
M- = Nếu không đứng trước một tham số số, nó sẽ tạo danh sách kết hợp
các lệnh hoặc tên tệp như được mô tả ở trên. Nếu không, từ dưới con trỏ
được thay thế bằng mục tương ứng với giá trị của tham số số từ
lệnh hoặc danh sách tệp được tạo gần đây nhất. Nếu con trỏ không ở trên
từ, nó được chèn vào thay thế.
^U Nhân tham số của lệnh tiếp theo với 4.
\ Thoát ký tự tiếp theo. Chỉnh sửa ký tự, xóa, giết và ngắt của người dùng
(thông thường ^?) các ký tự có thể được nhập trong một dòng lệnh hoặc trong một chuỗi tìm kiếm
nếu đứng trước một \. Các \ loại bỏ các tính năng chỉnh sửa của nhân vật tiếp theo (nếu
không tí nào).
M- ^ V Phiên bản hiển thị của vỏ.
NS-# Nếu dòng không bắt đầu bằng #, Một # được chèn vào đầu
dòng và sau mỗi dòng mới, và dòng được nhập. Điều này khiến một bình luận
được chèn vào tệp lịch sử. Nếu dòng bắt đầu bằng #, Các # bị xóa
và một # sau mỗi dòng mới cũng bị xóa.

Vi Chỉnh sửa Chế độ.
Có hai chế độ gõ. Ban đầu, khi bạn nhập một lệnh, bạn đang ở trong đầu vào
chế độ. Để chỉnh sửa, người dùng nhập điều khiển chế độ bằng cách gõ ESC (033) và di chuyển con trỏ đến
điểm cần sửa và sau đó chèn hoặc xóa các ký tự hoặc từ nếu cần.
Hầu hết các lệnh điều khiển chấp nhận lặp lại tùy chọn tính trước lệnh.

Khi vào vi chế độ trên hầu hết các hệ thống, xử lý chuẩn được bật ban đầu và lệnh
sẽ được lặp lại nếu tốc độ là 1200 baud trở lên và nó chứa bất kỳ điều khiển nào
ký tự hoặc ít hơn một giây đã trôi qua kể từ khi lời nhắc được in. ESC
ký tự chấm dứt xử lý chuẩn cho phần còn lại của lệnh và người dùng
sau đó có thể sửa đổi dòng lệnh. Lược đồ này có những ưu điểm của quá trình xử lý chuẩn
với tiếng vọng loại phía trước của chế độ thô.

Nếu tùy chọn viraw cũng được thiết lập, thiết bị đầu cuối sẽ luôn có xử lý chuẩn
Vô hiệu hóa. Chế độ này ngầm định đối với các hệ thống không hỗ trợ hai đầu dòng thay thế
dấu phân cách và có thể hữu ích cho một số thiết bị đầu cuối.

Đầu vào Chỉnh sửa Lệnh
Theo mặc định, trình soạn thảo đang ở chế độ đầu vào.
Xóa (Ký tự xóa do người dùng xác định như được xác định bởi lệnh stty, thường là ^H
or #.) Xóa ký tự trước đó.
^W Xóa từ được phân tách trống trước đó. Trên một số hệ thống, viraw
tùy chọn này có thể được yêu cầu để điều này hoạt động.
ôi Vì ký tự đầu tiên của dòng khiến trình bao kết thúc trừ khi
các làm ngơ tùy chọn được thiết lập. Nếu không thì ký tự này sẽ bị bỏ qua.
tiếp theo (Người dùng xác định ký tự tiếp theo theo nghĩa đen như được định nghĩa bởi tại biển(1) hoặc ^V if
không được xác định.) Loại bỏ các tính năng chỉnh sửa của ký tự tiếp theo (nếu có).
Trên một số hệ thống, viraw tùy chọn này có thể được yêu cầu để điều này hoạt động.
\ Thoát tiếp theo Xóa or giết nhân vật.
^I chuyển hướng Cố gắng hoàn thành lệnh hoặc tên tệp như được mô tả ở trên và trả về
sang chế độ đầu vào. Nếu hoàn thành một phần xảy ra, lặp lại điều này sẽ
cư xử như thể = đã được nhập từ chế độ điều khiển. Nếu không tìm thấy kết quả phù hợp hoặc
nhập sau không gian, Một chuyển hướng được chèn vào.
Chuyển động Chỉnh sửa Lệnh
Các lệnh này sẽ di chuyển con trỏ.
[tính]l Con trỏ chuyển tiếp (phải) một ký tự.
[tính][C Con trỏ chuyển tiếp (phải) một ký tự.
[tính]w Con trỏ chuyển tiếp một từ chữ và số.
[tính]W Con trỏ đến đầu từ tiếp theo sau ô trống.
[tính]e Con trỏ để kết thúc từ.
[tính]E Con trỏ để kết thúc từ được phân cách trống hiện tại.
[tính]h Con trỏ lùi (trái) một ký tự.
[tính][D Con trỏ lùi (trái) một ký tự.
[tính]b Con trỏ lùi một từ.
[tính]B Con trỏ tới từ được phân cách trống trước đó.
[tính] Con trỏ tới cột tính.
[tính]fc Tìm ký tự tiếp theo c trong dòng hiện tại.
[tính]Fc Tìm ký tự trước đó c trong dòng hiện tại.
[tính]tc Tương đương với f tiếp theo h.
[tính]Tc Tương đương với F tiếp theo l.
[tính]; lặp lại tính lần, lệnh tìm ký tự đơn cuối cùng, f, F, t, hoặc là
T.
[tính], Đảo ngược lệnh tìm ký tự đơn cuối cùng tính lần.
0 Con trỏ để bắt đầu dòng.
^ Con trỏ để bắt đầu dòng.
[H Con trỏ đến ký tự không trống đầu tiên trong dòng.
$ Con trỏ đến cuối dòng.
[Y Con trỏ đến cuối dòng.
% Chuyển sang cân bằng (, ), {, }, [, hoặc là ]. Nếu con trỏ không nằm trên một trong các
các ký tự trên, phần còn lại của dòng được tìm kiếm đầu tiên
sự xuất hiện của một trong các ký tự trên trước tiên.
Tìm kiếm Chỉnh sửa Lệnh
Các lệnh này truy cập lịch sử lệnh của bạn.
[tính]k Tìm nạp lệnh trước đó. Mỗi lần k được nhập lại lệnh trước đó
trong thời gian được truy cập.
[tính]- Tương đương với k.
[tính][A Nếu con trỏ ở cuối dòng, nó tương đương với / với string ^ set
đến các nội dung of các hiện hành hàng. Nếu không, nó tương đương với k.
[tính]j Tìm nạp lệnh tiếp theo. Mỗi lần j được nhập lệnh tiếp theo chuyển tiếp trong
thời gian được truy cập.
[tính]+ Tương đương với j.
[tính][B Tương đương với j.
[tính]G Số lệnh tính được tìm nạp. Giá trị mặc định là ít nhất gần đây nhất
lệnh lịch sử.
/chuỗi Tìm kiếm ngược trong lịch sử cho một lệnh trước đó chứa chuỗi.
Chuỗi được kết thúc bởi một `` RETURN '' hoặc `` NEW LINE ''. Nếu chuỗi đứng trước
bởi một ^, dòng phù hợp phải bắt đầu bằng chuỗi. Nếu chuỗi là null,
chuỗi trước sẽ được sử dụng.
?chuỗi Giống như / ngoại trừ việc tìm kiếm sẽ theo hướng phía trước.
n Tìm kiếm kết quả phù hợp tiếp theo của mẫu cuối cùng để / or ? lệnh.
N Tìm kiếm kết quả phù hợp tiếp theo của mẫu cuối cùng để / or ?, nhưng ngược lại
hướng.
bản văn Sửa đổi Chỉnh sửa Lệnh
Các lệnh này sẽ sửa đổi dòng.
a Vào chế độ nhập và nhập văn bản sau ký tự hiện tại.
A Nối văn bản vào cuối dòng. Tương đương với $a.
[tính]cchuyển động
c[tính]chuyển động
Xóa ký tự hiện tại thông qua ký tự đó chuyển động sẽ di chuyển
con trỏ tới và vào chế độ nhập. Nếu như chuyển động is c, toàn bộ dòng sẽ là
đã xóa và đã nhập chế độ đầu vào.
C Xóa ký tự hiện tại đến cuối dòng và nhập đầu vào
chế độ. Tương đương với c$.
S Tương đương với cc.
[tính]s Thay thế các ký tự dưới con trỏ trong chế độ nhập.
D Xóa ký tự hiện tại đến cuối dòng. Tương đương với d$.
[tính]dchuyển động
d[tính]chuyển động
Xóa ký tự hiện tại thông qua ký tự đó chuyển động sẽ chuyển đến.
If chuyển động is d , toàn bộ dòng sẽ bị xóa.
i Vào chế độ nhập và chèn văn bản trước ký tự hiện tại.
I Chèn văn bản trước đầu dòng. Tương đương với 0i.
[tính]P Đặt sửa đổi văn bản trước đó trước con trỏ.
[tính]p Đặt sửa đổi văn bản trước đó sau con trỏ.
R Vào chế độ nhập và thay thế các ký tự trên màn hình bằng các ký tự bạn
gõ thời trang lớp phủ.
[tính]rc Thay thế tính (các) ký tự bắt đầu ở vị trí con trỏ hiện tại
với cvà di chuyển con trỏ.
[tính]x Xóa ký tự hiện tại.
[tính]X Xóa ký tự đứng trước.
[tính]. Lặp lại lệnh sửa đổi văn bản trước đó.
[tính]~ Đảo ngược trường hợp của tính (các) ký tự bắt đầu ở con trỏ hiện tại
vị trí và di chuyển con trỏ.
[tính]_ Gây ra tính từ của lệnh trước đó sẽ được nối và nhập vào
đã vào chế độ. Từ cuối cùng được sử dụng nếu tính bị bỏ qua.
* Gây ra một * được nối vào việc tạo từ và tên tệp hiện tại
đã cố gắng. Nếu không tìm thấy kết quả phù hợp, nó sẽ rung chuông. Nếu không, từ
được thay thế bằng mẫu phù hợp và chế độ nhập được nhập.
\ Hoàn thành lệnh hoặc tên tệp như mô tả ở trên.
Nền tảng khác Chỉnh sửa Lệnh
Các lệnh khác.
[tính]ychuyển động
y[tính]chuyển động
Yank ký tự hiện tại thông qua ký tự đó chuyển động sẽ di chuyển
con trỏ tới và đặt chúng vào bộ đệm xóa. Văn bản và con trỏ là
không thay đổi.
yy Yanks toàn bộ dòng.
Y Yanks từ vị trí hiện tại đến cuối dòng. Tương đương với y$.
u Hoàn tác lệnh sửa đổi văn bản cuối cùng.
U Hoàn tác tất cả các lệnh sửa đổi văn bản được thực hiện trên dòng.
[tính]v Trả về lệnh hist -e $ {VISUAL: - $ {EDITOR: -vi}} tính trong đầu vào
đệm. Nếu như tính bị bỏ qua, thì dòng hiện tại được sử dụng.
^L Cấp dòng và in dòng hiện tại. Chỉ có hiệu lực trong chế độ kiểm soát.
^J (Dòng mới) Thực hiện dòng hiện tại, bất kể chế độ.
^M (Quay lại) Thực hiện dòng hiện tại, bất kể chế độ.
# Nếu ký tự đầu tiên của lệnh là #, sau đó lệnh này sẽ xóa
điều này # và mỗi # theo một dòng mới. Nếu không, gửi dòng
sau khi chèn một # trước mỗi dòng trong lệnh. Hữu ích cho
khiến dòng hiện tại được chèn vào lịch sử dưới dạng nhận xét và
bỏ ghi chú các lệnh đã nhận xét trước đó trong tệp lịch sử.
[tính]= If tính không được chỉ định, nó tạo ra danh sách các lệnh phù hợp hoặc
tên tệp như được mô tả ở trên. Nếu không, từ dưới con trỏ
được thay thế bởi tính mục từ lệnh được tạo gần đây nhất hoặc
danh sách tệp. Nếu con trỏ không nằm trên một từ, nó sẽ được chèn vào thay thế.
@bức thư Danh sách bí danh của bạn được tìm kiếm bí danh theo tên _bức thư và nếu một
bí danh của tên này được xác định, giá trị của nó sẽ được chèn vào đầu vào
hàng đợi để xử lý.
^V Phiên bản hiển thị của vỏ.

Built-in Các lệnh.
Các lệnh đơn giản sau được thực hiện trong quy trình shell. Chuyển hướng đầu vào / đầu ra
được phép. Trừ khi được chỉ định khác, đầu ra được ghi trên bộ mô tả tệp 1 và
trạng thái thoát, khi không có lỗi cú pháp, bằng không. Ngoại trừ :, đúng, sai, bỏ lỡ,
newgrpđăng nhập, tất cả các lệnh tích hợp đều chấp nhận -- để chỉ ra kết thúc của các tùy chọn. Họ cũng
diễn giải tùy chọn --Đàn ông như một yêu cầu hiển thị trang người đàn ông trên lỗi chuẩn và -?
như một yêu cầu trợ giúp in ra một sử dụng thông báo về lỗi tiêu chuẩn. Các lệnh được
đứng trước một hoặc hai ký hiệu † là các lệnh cài sẵn đặc biệt và được xử lý đặc biệt
theo những cách sau:
1. Danh sách gán biến trước lệnh vẫn có hiệu lực khi lệnh
hoàn thành.
2. Chuyển hướng I / O được xử lý sau khi gán biến.
3. Lỗi khiến tập lệnh chứa chúng bị hủy bỏ.
4. Chúng không phải là tên hàm hợp lệ.
5. Các từ theo sau lệnh đứng trước †† có định dạng của một biến
phép gán được mở rộng với các quy tắc tương tự như phép gán biến. Điều này có nghĩa là
sự thay thế dấu ngã đó được thực hiện sau = ký tên và tách trường và tệp
tạo tên không được thực hiện. Chúng được gọi là kê khai tích hợp sẵn.

: [ arg ...]
Lệnh chỉ mở rộng các tham số.

. tên [ arg hữu ích. Cảm ơn ! ]
If tên là một hàm được xác định với chức năng tên cú pháp từ dành riêng,
hàm được thực thi trong môi trường hiện tại (như thể nó đã được định nghĩa với
tên() cú pháp.) Ngược lại nếu tên đề cập đến một tệp, tệp được đọc trong
toàn bộ và các lệnh được thực thi trong môi trường shell hiện tại. Các
đường dẫn tìm kiếm được chỉ định bởi PATH được sử dụng để tìm thư mục chứa tệp.
Nếu bất kỳ đối số arg được đưa ra, chúng trở thành các tham số vị trí trong khi
xử lý . lệnh và các tham số vị trí ban đầu được khôi phục khi
hoàn thành. Nếu không, các tham số vị trí không thay đổi. Trạng thái thoát là
trạng thái thoát của lệnh cuối cùng được thực thi.

†† bí danh [ -ptx ] [ tên[ =giá trị ]] ...
bí danh không có đối số in ra danh sách các bí danh trong biểu mẫu tên = giá trị on
đầu ra tiêu chuẩn. Các -p tùy chọn gây ra từ bí danh được chèn trước mỗi
một. Khi một hoặc nhiều đối số được đưa ra, một bí danh được xác định cho mỗi tên
giá trị được đưa ra. Khoảng trống ở cuối giá trị khiến từ tiếp theo được kiểm tra
thay thế bí danh. Lỗi thời -t tùy chọn được sử dụng để đặt và liệt kê được theo dõi
bí danh. Giá trị của bí danh được theo dõi là tên đường dẫn đầy đủ tương ứng với
được tên. Giá trị trở nên không xác định khi giá trị của PATH được đặt lại nhưng
bí danh vẫn được theo dõi. Không có -t tùy chọn, cho mỗi tên trong danh sách đối số
mà không giá trị được cung cấp, tên và giá trị của bí danh được in. Các
lỗi thời -x tùy chọn không có hiệu lực. Trạng thái thoát là khác XNUMX nếu tên được đưa ra,
nhưng không có giá trị và không có bí danh nào được xác định cho tên.

bg [ việc làm...]
Lệnh này chỉ có trên các hệ thống hỗ trợ kiểm soát công việc. Đặt từng thứ được chỉ định việc làm
vào nền. Công việc hiện tại được đặt trong nền nếu việc làm không phải là
được chỉ định. Nhìn thấy việc làm để biết mô tả về định dạng của việc làm.

phá vỡ [ n ]
Thoát khỏi vòng vây cho, trong khi, cho đến khi, hoặc là chọn vòng lặp, nếu có. Nếu như n is
được chỉ định, sau đó phá vỡ n các cấp.

được xây dựng trong [ -ds ] [ -f hồ sơ ] [ tên ...]
If tên không được chỉ định, và không -f tùy chọn được chỉ định, các cài đặt sẵn được in
trên đầu ra tiêu chuẩn. Các -s tùy chọn chỉ in các cài đặt sẵn đặc biệt. Nếu không thì,
mỗi tên đại diện cho tên đường dẫn có tên cơ sở là tên của tích hợp sẵn. Các
tên chức năng điểm vào được xác định bằng cách viết trước b_ sang tên cài sẵn. MỘT
tích hợp sẵn được chỉ định bởi tên đường dẫn sẽ chỉ được thực thi khi tên đường dẫn đó
tìm thấy trong quá trình tìm kiếm đường dẫn. Tích hợp sẵn được tìm thấy trong các thư viện được tải qua .path
tệp sẽ được liên kết với tên đường dẫn của thư mục chứa .path
tập tin.

Nguyên mẫu ISO C / C ++ là b_Lệnh của tôi(NS argc, xe tăng *argv[], làm mất hiệu lực *bối cảnh) cho
lệnh nội trang Lệnh của tôi Ở đâu argv mảng có phải là một trong số argc các yếu tố và ngữ cảnh là một
con trỏ tùy chọn đến một Shell_t cấu trúc như được mô tả trong .
Các tích hợp sẵn đặc biệt không thể bị ràng buộc với tên đường dẫn hoặc bị xóa. Các -d tùy chọn xóa từng
tích hợp sẵn đã cho. Trên các hệ thống hỗ trợ tải động, -f tùy chọn tên một
thư viện được chia sẻ có chứa mã cho tích hợp sẵn. Tiền tố thư viện được chia sẻ và / hoặc
Có thể bỏ qua hậu tố phụ thuộc vào hệ thống. Sau khi một thư viện được tải, các ký hiệu của nó
có sẵn cho các lần gọi tiếp theo của được xây dựng trong. Nhiều thư viện có thể được
được chỉ định bằng các lời gọi riêng của được xây dựng trong yêu cầu. Các thư viện được tìm kiếm trong
đảo ngược thứ tự mà chúng được chỉ định. Khi một thư viện được tải, nó sẽ tìm kiếm một
chức năng trong thư viện có tên là lib_init () và gọi hàm này với một
lập luận của 0.

cd [ -LP ] [ arg ]
cd [ -LP ] xưa mới
Lệnh này có thể ở một trong hai dạng. Ở dạng đầu tiên, nó thay đổi
thư mục hiện tại đến arg. Nếu arg is - thư mục được thay đổi thành trước đó
danh mục. Biến shell TRANG CHỦ là mặc định arg. Biến PWD được thiết lập để
thư mục hiện tại. Biến shell CDPATH xác định đường dẫn tìm kiếm cho
thư mục chứa arg. Các tên thư mục thay thế được phân tách bằng dấu hai chấm
(:). Đường dẫn mặc định là (xác định thư mục hiện tại). Lưu ý rằng
thư mục hiện tại được chỉ định bằng tên đường dẫn rỗng, tên này có thể xuất hiện ngay lập tức
sau dấu bằng hoặc giữa các dấu hai chấm ở bất kỳ vị trí nào khác trong đường dẫn
danh sách. Nếu như arg bắt đầu bằng một / thì đường dẫn tìm kiếm không được sử dụng. Nếu không, mỗi
thư mục trong đường dẫn được tìm kiếm arg.
Dạng thứ hai của cd thay thế chuỗi mới cho chuỗi xưa bây giờ
Tên thư mục, PWDvà cố gắng thay đổi thư mục mới này.
Theo mặc định, tên liên kết tượng trưng được xử lý theo nghĩa đen khi tìm thư mục
Tên. Điều này tương đương với -L Lựa chọn. Các -P tùy chọn gây ra các liên kết tượng trưng đến
được giải quyết khi xác định thư mục. Phiên bản cuối cùng của -L or -P trên
dòng lệnh xác định phương thức nào được sử dụng.
Sản phẩm cd lệnh có thể không được thực hiện bởi rksh. rksh93.

lệnh [ -pvxV ] tên [ arg ...]
Không có -v or -V tùy chọn lệnh thi hành tên với các đối số được đưa ra bởi
arg. Các -p tùy chọn khiến một đường dẫn mặc định được tìm kiếm thay vì đường dẫn
được xác định bởi giá trị của PATH. Các hàm sẽ không được tìm kiếm khi tìm
tên. Ngoài ra, nếu tên đề cập đến một đặc biệt được tích hợp sẵn, không có gì đặc biệt
thuộc tính liên kết với con dao găm hàng đầu sẽ được tôn vinh. (Ví dụ,
bí danh được xác định trước lệnh redirect = ′ thực thi ′ ngăn một tập lệnh kết thúc khi một
chuyển hướng không hợp lệ được đưa ra.) Với -x tùy chọn, nếu thực thi lệnh sẽ
dẫn đến thất bại vì có quá nhiều đối số, errno E2BIG, vỏ
sẽ gọi lệnh tên nhiều lần với một tập hợp con các đối số trên mỗi
sự cầu khẩn. Các đối số xảy ra trước từ đầu tiên mở rộng thành nhiều
đối số và sau từ cuối cùng mở rộng thành nhiều đối số sẽ được chuyển
trên mỗi lời gọi. Trạng thái thoát sẽ là trạng thái thoát lệnh gọi tối đa.
Với -v Tùy chọn, lệnh tương đương với cài sẵn thời gian lệnh được mô tả
phía dưới. Các -V nguyên nhân tùy chọn lệnh hành động như thế nào thời gian -v.

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, sau đó tiếp tục tại n-th vòng lặp.

không nhận [ việc làm...]
Làm cho trình bao không gửi tín hiệu HUP đến từng việc làmhoặc tất cả các công việc đang hoạt động nếu
việc làm bị bỏ qua, khi trình bao đăng nhập kết thúc.

bỏ lỡ [ arg ...]
Khi đầu tiên arg không bắt đầu bằng dấu - và không có đối số nào chứa dấu \,
sau đó bỏ lỡ in mỗi đối số của nó được phân tách bằng dấu cách và kết thúc bằng dấu
dòng mới. Nếu không, hành vi của bỏ lỡ là hệ thống phụ thuộc và in or printf
mô tả dưới đây nên được sử dụng. Nhìn thấy bỏ lỡ(1) để sử dụng và mô tả.

†† liệt kê [ -i ] kiểu[= (giá trị ...)]
Tạo một lệnh khai báo có tên kiểu đó là một kiểu số nguyên cho phép một trong những
các quy định giá trịs như tên liệt kê. Nếu như =(giá trị hữu ích. Cảm ơn !) được bỏ qua, sau đó kiểu
phải là một biến mảng được lập chỉ mục có ít nhất hai phần tử và các giá trị là
lấy từ biến mảng này. Nếu như -i được chỉ định các giá trị là chữ hoa
vô cảm.

đánh giá [ arg ...]
Các đối số được đọc dưới dạng đầu vào cho trình bao và (các) lệnh kết quả được thực thi.

giám đốc điều hành [ -c ] [ -a tên ] [ arg ...]
If arg được đưa ra, lệnh được chỉ định bởi các đối số được thực thi thay cho
shell này mà không tạo một quy trình mới. Các -c tùy chọn khiến môi trường
được xóa trước khi áp dụng các phép gán biến được liên kết với giám đốc điều hành
sự cầu khẩn. Các -a nguyên nhân tùy chọn tên chứ không phải là lần đầu tiên arg, để trở thành argv [0]
cho quy trình mới. Các đối số đầu vào / đầu ra có thể xuất hiện và ảnh hưởng đến dòng
quá trình. Nếu arg không được đưa ra, tác dụng của lệnh này là sửa đổi tệp
bộ mô tả theo quy định của danh sách chuyển hướng đầu vào / đầu ra. Trong trường hợp này, bất kỳ
số bộ mô tả tệp lớn hơn 2 được mở bằng cơ chế này là
đã đóng khi gọi một chương trình khác.

ra [ n ]
Làm cho trình bao thoát ra với trạng thái thoát được chỉ định bởi n. Giá trị sẽ là
8 bit quan trọng nhất của trạng thái được chỉ định. Nếu như n được bỏ qua, sau đó
trạng thái thoát là của lệnh cuối cùng được thực thi. Phần cuối của tệp cũng sẽ gây ra
vỏ để thoát ra ngoại trừ một vỏ có làm ngơ tùy chọn (xem định dưới đây)
đã bật.

†† xuất khẩu [ -p ] [ tên[=giá trị]] ...
If tên không được cung cấp, tên và giá trị của từng biến có xuất
thuộc tính được in với các giá trị được trích dẫn theo cách cho phép chúng được tái
đầu vào. Các xuất khẩu lệnh giống như bộ sắp chữ -x ngoại trừ điều đó nếu bạn sử dụng xuất khẩu
trong một hàm, không có biến cục bộ nào được tạo. Các -p tùy chọn gây ra từ
xuất khẩu được chèn trước mỗi cái. Nếu không, đã cho têns được đánh dấu cho
xuất tự động sang môi trường của các lệnh được thực hiện sau đó.

sai Không làm gì cả và thoát ra 1. Được sử dụng với cho đến khi cho các vòng lặp vô hạn.

fg [ việc làm...]
Lệnh này chỉ có trên các hệ thống hỗ trợ kiểm soát công việc. Mỗi việc làm được chỉ định là
đưa ra tiền cảnh và chờ đợi theo thứ tự đã định. Nếu không
công việc hiện tại được đưa vào tiền cảnh. Nhìn thấy việc làm cho một mô tả về
định dạng của việc làm.

getconf [ tên [ tên đường dẫn ]]
In giá trị hiện tại của thông số cấu hình được cung cấp bởi tên. Các
tham số cấu hình được xác định bởi IEEE POSIX 1003.1 và IEEE POSIX 1003.2
tiêu chuẩn. (Nhìn thấy đường dẫn(2) sysconf(2).) tên đường dẫn đối số là bắt buộc
cho các tham số có giá trị phụ thuộc vào vị trí trong hệ thống tệp. Nếu không
các đối số được đưa ra, getconf in tên và giá trị của dòng điện
thông số cấu hình. Tên đường dẫn / được sử dụng cho mỗi tham số
đòi hỏi tên đường dẫn.

getopt [ -a tên ] dây quang vname [ arg ...]
Séc arg cho các lựa chọn pháp lý. Nếu như arg bị bỏ qua, các tham số vị trí là
được sử dụng. Đối số tùy chọn bắt đầu bằng + hoặc một -. Một tùy chọn không bắt đầu bằng +
or - hoặc đối số -- kết thúc các tùy chọn. Các tùy chọn bắt đầu bằng + chỉ là
nhận ra khi dây quang bắt đầu bằng một +. dây quang chứa các chữ cái
getopt nhận ra. Nếu một chữ cái được theo sau bởi một :, tùy chọn đó được mong đợi
có một cuộc tranh cãi. Các tùy chọn có thể được phân tách khỏi đối số bằng các ô trống. Các
tùy chọn -? nguyên nhân getopt để tạo thông báo sử dụng về lỗi chuẩn. Các -a
đối số có thể được sử dụng để chỉ định tên sẽ sử dụng cho thông báo sử dụng,
mặc định là $0.
getopt đặt ký tự tùy chọn tiếp theo mà nó tìm thấy bên trong biến vname mỗi lần như vậy
Được gọi. Chữ cái tùy chọn sẽ được thêm vào trước + khi nào arg bắt đầu bằng một +.
Chỉ số của tiếp theo arg Được lưu giữ trong TÙY CHỌN. Đối số tùy chọn, nếu có, được
được lưu trữ trong TỐI ƯU.
Một sự dẫn đầu : in dây quang nguyên nhân getopt để lưu trữ chữ cái của một tùy chọn không hợp lệ trong
TỐI ƯUvà để thiết lập vname đến ? cho một tùy chọn không xác định và : khi có yêu cầu
đối số tùy chọn bị thiếu. Nếu không thì, getopt in một thông báo lỗi. Lối thoát
trạng thái khác XNUMX khi không còn tùy chọn nào nữa.
Không có cách nào để chỉ định bất kỳ tùy chọn nào :, +, -, ?, []. Các tùy chọn #
chỉ có thể được chỉ định là tùy chọn đầu tiên.

hist [ -e đặt tên ] [ -nlr ] [ Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên [ cuối cùng ]]
hist -s [ xưa=mới ] [ lệnh ]
Ở dạng đầu tiê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 được chọn từ cuối cùng
KÍCH THƯỚC LỊCH SỬ các lệnh đã được nhập tại thiết bị đầu cuối. Các đối số Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiêncuối cùng
có thể được chỉ định dưới dạng một số hoặc một chuỗi. Một chuỗi được sử dụng để xác định vị trí
lệnh gần đây bắt đầu bằng chuỗi đã cho. Một số âm được sử dụng làm
bù vào số lệnh hiện tại. Nếu -l tùy chọn được chọn, các lệnh
được liệt kê trên đầu ra tiêu chuẩn. Nếu không, chương trình biên tập đặt tên được gọi trên một
tệp chứa các lệnh bàn phím này. Nếu như đặt tên không được cung cấp, thì giá trị
của biến LỊCH SỬ Được sử dụng. Nếu LỊCH SỬ không được thiết lập, sau đó FCEDIT (vỡ nợ
/ usr / bin / ex) được sử dụng làm trình soạn thảo. Khi chỉnh sửa hoàn tất, phần đã chỉnh sửa
(các) lệnh được thực thi nếu các thay đổi đã được lưu. Nếu như cuối cùng không được chỉ định,
sau đó nó sẽ được đặt thành Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên. Nếu 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, mặc định là
lệnh trước để chỉnh sửa và -16 để liệt kê. Các tùy chọn -r đảo ngược thứ tự
của các lệnh và tùy chọn -n ngăn chặn các số lệnh khi liệt kê. bên trong
Dạng thứ hai, lệnh được hiểu là Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên được mô tả ở trên và mặc định là
lệnh cuối cùng được thực thi. Lệnh kết quả được thực thi sau tùy chọn
thay thế xưa=mới được thực hiện.

việc làm [ -lnp ] [ việc làm ...]
Liệt kê thông tin về từng công việc đã cho; hoặc tất cả các công việc đang hoạt động nếu việc làm được bỏ qua. Các
-l tùy chọn liệt kê id quy trình ngoài thông tin bình thường. Các -n tùy chọn
chỉ hiển thị các công việc đã dừng hoặc thoát kể từ lần thông báo cuối cùng. Các -p tùy chọn
chỉ khiến nhóm quá trình được liệt kê. Nhìn thấy việc làm cho một mô tả về
định dạng của việc làm.

giết [ -s ký tên ] việc làm hữu ích. Cảm ơn !
giết [ -n dấu hiệu ] việc làm hữu ích. Cảm ơn !
giết -NS [ sig ...]
Gửi tín hiệu TERM (kết thúc) hoặc tín hiệu được chỉ định đến
các công việc hoặc quy trình. Các tín hiệu được đưa ra bằng số với -n tùy chọn hoặc bằng
tên với -s tùy chọn (như được đưa ra trong , loại bỏ tiền tố `` SIG ''
ngoại trừ SIGCLD được đặt tên là CHLD). Để tương thích ngược, n
s có thể được bỏ qua và số hoặc tên được đặt ngay sau -. Nếu
tín hiệu được gửi là TERM (kết thúc) hoặc HUP (treo máy), sau đó công việc hoặc quy trình sẽ
được gửi một tín hiệu CONT (tiếp tục) nếu nó bị dừng. Lý lẽ việc làm có thể là
id quy trình của một quy trình không phải là thành viên của một trong những công việc đang hoạt động. Nhìn thấy việc làm
để biết mô tả về định dạng của việc làm. Ở dạng thứ ba, giết -l, hoặc là giết -L, Nếu
sig không được chỉ định, các tên tín hiệu được liệt kê. Các -l danh sách tùy chọn chỉ
tên tín hiệu. -L các tùy chọn liệt kê từng tên tín hiệu và số tương ứng.
Nếu không, đối với mỗi sig đó là tên, số tín hiệu tương ứng được liệt kê.
Cho mỗi sig đó là một số, tên tín hiệu tương ứng với ít nhất
8 bit quan trọng của sig đã được liệt kê.

cho phép arg hữu ích. Cảm ơn !
Mỗi trang web arg là một sự riêng biệt số học biểu hiện để được đánh giá. cho phép chỉ nhận ra
hằng số bát phân bắt đầu bằng 0 khi định tùy chọn tử cung đang bật. Nhìn thấy toán học
Đánh giá ở trên, để mô tả về đánh giá biểu thức số học.
Trạng thái thoát là 0 nếu giá trị của biểu thức cuối cùng khác 1 và XNUMX
nếu không thì.

newgrp [ arg ...]
Tương đương với giám đốc điều hành / bin / newgrp arg ....

in [ -CRenprsv ] [ -u đơn vị] [ -f định dạng ] [ arg ...]
Không có tùy chọn hoặc có tùy chọn - or --, mỗi arg được in trên đầu ra tiêu chuẩn.
Sản phẩm -f tùy chọn làm cho các đối số được in như được mô tả bởi printf. Trong
trường hợp, bất kỳ e, n, r, R các tùy chọn bị bỏ qua. Nếu không, trừ khi -C, -R, -r, hoặc là -v
được chỉ định, các quy ước thoát sau sẽ được áp dụng:
\a Ký tự cảnh báo (ascii 07).
\b Ký tự xóa lùi (ascii 010).
\c Nguyên nhân in kết thúc mà không cần xử lý thêm đối số và không thêm mới-
hàng.
\f Ký tự formfeed (ascii 014).
\n Ký tự dòng mới (ascii 012).
\r Ký tự xuống dòng (ascii 015).
\t Ký tự tab (ascii 011).
\v Ký tự tab dọc (ascii 013).
\E Nhân vật trốn thoát (ascii 033).
\\ Ký tự gạch chéo ngược \.
\0x Ký tự được xác định bởi chuỗi bát phân 1, 2 hoặc 3 chữ số được cung cấp bởi x.

Sản phẩm -R tùy chọn sẽ in tất cả các đối số tiếp theo và các tùy chọn khác với -n. Các
-e khiến các quy ước thoát hiểm trên được áp dụng. Đây là mặc định
hành vi. Nó đảo ngược tác dụng của một -r. Các -p tùy chọn gây ra
các đối số được ghi vào đường ống của quy trình được tạo ra với ⎪ & thay vì
đầu ra tiêu chuẩn. Các -v tùy chọn xử lý mỗi arg như một tên biến và viết
giá trị trong printf %B định dạng. Các -C tùy chọn xử lý mỗi arg như một tên biến
và viết giá trị trong printf % # B định dạng. Các -s tùy chọn gây ra các đối số
được ghi vào tệp lịch sử thay vì đầu ra tiêu chuẩn. Các -u tùy chọn có thể
được sử dụng để chỉ định số đơn vị bộ mô tả tệp một chữ số đơn vị trên đó đầu ra
sẽ được đặt. Giá trị mặc định là 1. Nếu tùy chọn -n được sử dụng, không dòng mới được thêm vào
đến đầu ra.

printf định dạng [ arg ...]
Các đối số arg được in trên đầu ra tiêu chuẩn phù hợp với ANSI-C
quy tắc định dạng được liên kết với chuỗi định dạng định dạng. Nếu số lượng
các đối số vượt quá số thông số kỹ thuật định dạng, định dạng chuỗi được sử dụng lại
để định dạng các đối số còn lại. Các phần mở rộng sau cũng có thể được sử dụng:
%b A %b định dạng có thể được sử dụng thay vì %s để gây ra các chuỗi thoát trong
tương ứng arg được mở rộng như được mô tả trong in.
%B A %B tùy chọn khiến mỗi đối số được coi là tên biến và
giá trị nhị phân của biến sẽ được in. Lá cờ thay thế # gây ra một
biến phức hợp được xuất trên một dòng. Điều này hữu ích nhất cho
biến phức hợp và biến có thuộc tính là -b.
%H A %H định dạng có thể được sử dụng thay vì %s để gây ra các nhân vật trong arg được
đặc biệt trong HTML và XML để được xuất ra dưới dạng tên thực thể của chúng. Thay thế
cờ # định dạng đầu ra để sử dụng như một URI.
%P A %P định dạng có thể được sử dụng thay vì %s gây ra arg được hiểu như một
mở rộng biểu thức chính quy và được in dưới dạng mẫu shell.
%R A %R định dạng có thể được sử dụng thay vì %s gây ra arg được hiểu như một
mẫu shell và được in dưới dạng biểu thức chính quy mở rộng.
%q A %q định dạng có thể được sử dụng thay vì %s làm cho chuỗi kết quả là
được trích dẫn theo cách có thể được nhập lại vào trình bao. Khi nào q đứng trước
công cụ định dạng thay thế, #, chuỗi được trích dẫn theo cách phù hợp
như một lĩnh vực trong một . Csv định dạng tập tin.
%(Định dạng ngày tháng)T
A %(Định dạng ngày tháng)T định dạng có thể được sử dụng để coi một đối số là ngày / giờ
chuỗi và để định dạng ngày / giờ theo Định dạng ngày tháng như được định nghĩa
cho ngày(1) lệnh.
%Z A %Z định dạng sẽ xuất ra một byte có giá trị là 0.
%d Trường độ chính xác của %d có thể được theo sau bởi một . và đầu ra
căn cứ. Trong trường hợp này, # cờ nhân vật nguyên nhân cơ sở# được thêm vào trước.
# Sản phẩm # cờ, khi được sử dụng với %d định dạng không có cơ sở đầu ra, hiển thị
đầu ra theo lũy thừa 1000 được biểu thị bằng một trong các hậu tố sau: k M
G T P Evà khi được sử dụng với %i định dạng hiển thị đầu ra theo quyền hạn của
1024 được biểu thị bằng một trong các hậu tố sau: Ki Mi Gi Ti Pi Ei.
= Sản phẩm = cờ căn giữa đầu ra trong chiều rộng trường được chỉ định.
L Sản phẩm L cờ, khi được sử dụng với %c or %s định dạng, coi độ chính xác là
chiều rộng ký tự thay vì đếm byte.
, Sản phẩm , cờ, khi được sử dụng với %d or %f định dạng, phân tách các nhóm chữ số
với dấu phân cách nhóm (, trên nhóm 3 người trong ngôn ngữ C.)

pwd [ -LP ]
Xuất ra giá trị của thư mục làm việc hiện tại. Các -L tùy chọn là mặc định;
nó in tên hợp lý của thư mục hiện tại. Nếu -P tùy chọn được đưa ra,
tất cả các liên kết tượng trưng được giải quyết từ tên. Phiên bản cuối cùng của -L or -P on
dòng lệnh xác định phương thức nào được sử dụng.

đọc [ -ACSprsv ] [ -d phân định] [ -n n] [[ -N n] [[ -t thời gian chờ] [ -u đơn vị] [ vname?nhanh chóng
] [ vname ...]
Cơ chế đầu vào shell. Một dòng được đọc và được chia thành các trường bằng cách sử dụng
ký tự trong IFS làm vật ngăn cách. Nhân vật trốn thoát, \, được sử dụng để loại bỏ bất kỳ
ý nghĩa đặc biệt cho ký tự tiếp theo và cho việc tiếp tục dòng. Các -d tùy chọn
khiến việc đọc tiếp tục đến ký tự đầu tiên của phân định chứ không phải dòng mới.
Sản phẩm -n tùy chọn gây ra nhiều nhất n byte để đọc thay vì một dòng đầy đủ nhưng sẽ trả về
khi đọc từ một thiết bị chậm ngay sau khi bất kỳ ký tự nào đã được đọc. Các -N
tùy chọn nguyên nhân chính xác n được đọc trừ khi gặp phải phần cuối của tệp hoặc
hết thời gian đọc vì -t lựa chọn. Ở chế độ thô, -NS, các \ nhân vật là
không được đối xử đặc biệt. Trường đầu tiên được gán cho trường đầu tiên vname, thư hai
lĩnh vực thứ hai vname, v.v., với các trường còn lại được chỉ định cho vname.
Thời Gian vname có thuộc tính nhị phân và -n or -N được chỉ định, các byte được
đọc được lưu trữ trực tiếp vào biến. Nếu -v được chỉ định, sau đó là giá trị
của người đầu tiên vname sẽ được sử dụng làm giá trị mặc định khi đọc từ một thiết bị đầu cuối
thiết bị. Các -A tùy chọn gây ra biến vname không được đặt và mỗi trường
đọc được lưu trữ trong các phần tử kế tiếp của mảng được lập chỉ mục vname. Sản phẩm -C tùy chọn
gây ra biến vname được đọc như một biến ghép. Khoảng trống sẽ được
bị bỏ qua khi tìm đầu mở ngoặc đơn. Tùy chọn -S gây ra dòng
được đối xử như một kỷ lục trong một . Csv định dạng tệp để có thể sử dụng dấu ngoặc kép
để cho phép ký tự phân tách và ký tự dòng mới xuất hiện trong
cánh đồng. Các -p tùy chọn khiến dòng đầu vào được lấy từ đường ống đầu vào của một
quá trình sinh sản bằng vỏ bằng cách sử dụng ⎪ &. Nếu -s tùy chọn hiện tại, đầu vào sẽ
được lưu dưới dạng lệnh trong tệp lịch sử. Các tùy chọn -u có thể được sử dụng để chỉ định một
đơn vị mô tả tệp một chữ số đơn vị để đọc từ. Bộ mô tả tệp có thể là
mở bằng giám đốc điều hành lệnh tích hợp đặc biệt. Giá trị mặc định của đơn vị n là 0.
Tùy chọn -t được sử dụng để chỉ định thời gian chờ tính bằng giây khi đọc từ một thiết bị đầu cuối
hoặc đường ống. Nếu như vname được bỏ qua, sau đó ĐÁP LẠI được sử dụng làm mặc định vname. Một sự kết thúc của-
tập tin với -p tùy chọn thực hiện dọn dẹp cho quá trình này để quá trình khác có thể
đã sinh sản. Nếu đối số đầu tiên chứa ?, phần còn lại của từ này được sử dụng như
a nhanh chóng về lỗi tiêu chuẩn khi trình bao tương tác. Trạng thái thoát là 0
trừ khi gặp phải phần cuối của tệp hoặc đọc đã hết thời gian.

†† chỉ đọc [ -p ] [ vname[=giá trị]] ...
If vname không được cung cấp, tên và giá trị của mỗi biến với giá trị chỉ đọc
thuộc tính được in với các giá trị được trích dẫn theo cách cho phép chúng được tái
đã nhập. Các -p tùy chọn gây ra từ chỉ đọc được chèn trước mỗi cái.
Nếu không, đã cho vnames được đánh dấu là chỉ đọc và những tên này không thể thay đổi
bằng cách phân công tiếp theo. Khi xác định một kiểu, nếu giá trị của một phụ chỉ đọc
biến không được xác định, giá trị được yêu cầu khi tạo mỗi phiên bản.

trở lại [ n ]
Gây ra một lớp vỏ chức năng or . script để quay lại script đang gọi với lối ra
trạng thái được chỉ định bởi n. Giá trị sẽ là 8 bit quan trọng nhất trong số
trạng thái chỉ định. Nếu như n bị bỏ qua, thì trạng thái trả về là trạng thái cuối cùng
lệnh được thực thi. Nếu như trở lại được gọi trong khi không ở trong chức năng hoặc một . kịch bản,
sau đó nó hoạt động giống như ra.

định [ ± BCGabefhkmnoprstuvx ] [ ± o [ tùy chọn ]] ... [ ± A vname ] [ arg ...]
Các tùy chọn cho lệnh này có ý nghĩa như sau:
-A Phép gán mảng. Bỏ đặt biến vname và gán các giá trị một cách tuần tự
từ arg danh sách. Nếu như +A được sử dụng, biến vname không phải là không được đặt trước.
-B Bật tạo trường mẫu dấu ngoặc nhọn. Đây là hành vi mặc định.
-B Bật mở rộng nhóm dấu ngoặc nhọn. Bật theo mặc định.
-C Ngăn chuyển hướng > từ việc cắt bớt các tệp hiện có. Tệp được
đã tạo được mở bằng chế độ O_EXCL. Đòi hỏi > ⎪ cắt bớt một tập tin
khi bật.
-G Nguyên nhân của mô hình ** tự nó để khớp các tệp và không hoặc nhiều thư mục
và các thư mục con khi được sử dụng để tạo tên tệp. Nếu theo sau bởi một /
chỉ các thư mục và thư mục con được so khớp.
-a Tất cả các biến tiếp theo được xác định sẽ được xuất tự động.
-b In thông báo hoàn thành công việc ngay khi công việc nền thay đổi trạng thái
thay vì chờ đợi lời nhắc tiếp theo.
-e Trừ khi được chứa trong một ⎪⎪ or && lệnh hoặc lệnh theo sau một if
trong khi or cho đến khi lệnh hoặc trong đường dẫn sau !, nếu một lệnh có một
trạng thái thoát khác XNUMX, thực hiện ERR bẫy, nếu được đặt và thoát ra. Chế độ này là
bị vô hiệu hóa khi đọc hồ sơ.
-f Tắt tạo tên tệp.
-h Mỗi lệnh sẽ trở thành một bí danh được theo dõi khi gặp lần đầu tiên.
-k (Đã lỗi thời). Tất cả các đối số gán biế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.
-m Các công việc nền sẽ chạy trong một nhóm quy trình riêng biệt và một dòng sẽ in
khi hoàn thành. Trạng thái thoát của các công việc nền được báo cáo trong một
thông báo hoàn thành. Trên các hệ thống có kiểm soát công việc, tùy chọn này được bật
tự động cho các trình bao tương tác.
-n Đọc lệnh và kiểm tra lỗi cú pháp, nhưng không thực hiện chúng.
Bỏ qua cho các trình bao tương tác.
-o Đối số sau có thể là một trong các tên tùy chọn sau:
tất cả xuất khẩu
Giống như -a.
sai lầm Giống như -e.
bgnice Tất cả các công việc nền được chạy ở mức độ ưu tiên thấp hơn. Đây là
chế độ mặc định.
nẹpexpand
Giống như -B.
emacs Đưa bạn vào một emacs trình soạn thảo trong dòng kiểu cho mục nhập lệnh.
sao cầu
Giống như -G.
gmac Đưa bạn vào một gmac trình soạn thảo trong dòng kiểu cho mục nhập lệnh.
làm ngơ
Trình bao sẽ không thoát khi kết thúc tệp. Lệnh ra phải
đã sử dụng.
từ khóa Giống như -k.
tử cung
Sản phẩm cho phép lệnh cho phép các hằng số bát phân bắt đầu bằng 0.
người đánh dấu
Tất cả các tên thư mục do tạo tên tệp đều có
dấu / thêm vào.
màn hình Giống như -m.
multiline
Các trình chỉnh sửa tích hợp sẽ sử dụng nhiều dòng trên màn hình cho
dòng dài hơn chiều rộng của màn hình. Điều này có thể không
làm việc cho tất cả các thiết bị đầu cuối.
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ý Không lưu các định nghĩa chức năng trong tệp lịch sử.
thông báo Giống như -b.
danh từ Giống như -u.
cái ống nước
Một đường ống sẽ không hoàn thành cho đến khi tất cả các thành phần của đường ống
đã hoàn thành và giá trị trả về sẽ là giá trị của
lệnh khác không để thất bại hoặc bằng không nếu không có lệnh nào bị lỗi.
cho tôi xem Khi được bật, các lệnh hoặc đường dẫn đơn giản trước dấu chấm phẩy
(;) sẽ được hiển thị như thể xtrace tùy chọn đã được kích hoạt nhưng sẽ
không được thực hiện. Nếu không, hàng đầu ; sẽ bị bỏ qua.
đặc quyền đặc lợi
Giống như -p.
dài dòng Giống như -v.
theo dõi tất cả
Giống như -h.
vi Đưa bạn vào chế độ chèn của một vi trình chỉnh sửa nội dòng kiểu cho đến khi bạn nhấn
nhân vật trốn thoát 033. Điều này đưa bạn vào chế độ kiểm soát. Sự trở về, sự trở lại
gửi dòng.
viraw Mỗi ký tự được xử lý khi nó được nhập vào vi chế độ.
xtrace Giống như -x.
Nếu không có tên tùy chọn nào được cung cấp, thì cài đặt tùy chọn hiện tại là
đã in.
-p Tắt xử lý $ HOME / .profile tập tin và sử dụng tập tin
/ etc / suid_profile thay cho ENV tập tin. Chế độ này được bật bất cứ khi nào
uid hiệu dụng (gid) không bằng uid thực (gid). Đang tắt tính năng này
khiến uid và gid hiệu quả được đặt thành uid và gid thực.
-r Bật trình bao bị hạn chế. Không thể bỏ đặt tùy chọn này sau khi đã đặt.
-s Sắp xếp các tham số vị trí theo từ điển.
-t (Đã lỗi thời). Thoát sau khi đọc và thực hiện một lệnh.
-u Xử lý các thông số chưa đặt như một lỗi khi thay thế.
-v In các dòng đầu vào của shell khi chúng được đọc.
-x In các lệnh và đối số của chúng khi chúng được thực thi.
-- Không thay đổi bất kỳ tùy chọn nào; hữu ích trong việc thiết lập $1 đến một giá trị bắt đầu
với -. 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í
chưa được đặt.

Là một tính năng lỗi thời, nếu tính năng đầu tiên arg is - sau đó -x-v các tùy chọn được biến
tắt và tiếp theo arg được coi là đối số đầu tiên. Sử dụng + chứ không phải là -
khiến các tùy chọn này bị tắt. Các tùy chọn này cũng có thể được sử dụng khi
lệnh gọi của shell. Bộ tùy chọn hiện tại có thể được tìm thấy trong $-. Trừ khi -A
được chỉ định, các đối số còn lại là tham số vị trí và được gán,
để mà $1 $2 .... Nếu không có đối số nào được đưa ra, thì tên và giá trị của
tất cả các biến được in trên đầu ra chuẩn.

thay đổi [ n ]
Các tham số vị trí từ $n+1 ... được đổi tên $1 ... , vỡ nợ n là 1.
tham số n có thể là bất kỳ biểu thức số học nào cho kết quả không âm
số nhỏ hơn hoặc bằng $#.

ngủ giây
Tạm dừng thực thi đối với số giây thập phân hoặc số phần nhỏ của giây đã cho
by giây.

bẫy [ -p ] [ hoạt động ] [ sig ] ...
Sản phẩm -p tùy chọn gây ra hành động bẫy được liên kết với mỗi bẫy như được chỉ định bởi
các đối số sẽ được in kèm theo trích dẫn thích hợp. Nếu không thì, hoạt động sẽ được
được xử lý như thể nó là một đối số đánh giá khi shell nhận (các) tín hiệu sig.
Mỗi trang web sig có thể được đưa ra dưới dạng một số hoặc dưới dạng tên của tín hiệu. Lệnh bẫy là
được thực hiện theo thứ tự của số tín hiệu. Bất kỳ nỗ lực nào để đặt bẫy trên một tín hiệu
bỏ qua khi nhập vào trình bao hiện tại là không hiệu quả. Nếu như hoạt động bị bỏ qua và
Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên sig là một số, hoặc nếu hoạt động is -, sau đó là (các) bẫy cho mỗi sig được đặt lại
về giá trị ban đầu của chúng. Nếu như hoạt động là chuỗi null thì tín hiệu này bị bỏ qua
bởi shell và các lệnh mà nó gọi. Nếu như sig is ERR sau đó hoạt động sẽ được
được thực thi bất cứ khi nào một lệnh có trạng thái thoát khác XNUMX. Nếu như sig is DEBUG sau đó
hoạt động sẽ được thực hiện trước mỗi lệnh. Biến .sh.command sẽ chứa
nội dung của dòng lệnh hiện tại khi hoạt động đang chạy. Nếu lối ra
tình trạng của cái bẫy là 2 lệnh sẽ không được thực hiện. Nếu trạng thái thoát của
cái bẫy là 255 và bên trong một hàm hoặc tập lệnh dấu chấm, tập lệnh hàm hoặc tập lệnh dấu chấm
sẽ trở lại. Nếu như sig is 0 or EXITbẫy câu lệnh được thực thi bên trong
phần thân của một hàm được xác định với chức năng tên cú pháp, sau đó là lệnh hoạt động
được thực thi sau khi hàm hoàn thành. Nếu như sig is 0 or EXIT cho một bẫy định
bên ngoài bất kỳ chức năng nào thì lệnh hoạt động được thực thi khi thoát khỏi trình bao.
If sig is TỪ KHÓAthì hoạt động sẽ được thực thi bất cứ khi nào một khóa được đọc trong khi
emacs, gmac, hoặc là vi chế độ. Các bẫy lệnh không có đối số in ra danh sách
các lệnh liên quan đến mỗi số tín hiệu.

An ra or trở lại không có đối số trong một hành động bẫy sẽ duy trì trạng thái thoát của
lệnh gọi ra cái bẫy.

đúng Không làm gì cả và thoát ra 0. Được sử dụng với trong khi cho các vòng lặp vô hạn.

†† bộ sắp chữ [ ± ACHSfblmnprtux ] [ ± EFLRXZi [n] ] [ + -M [ tên bản đồ ] ] [ -T [
tên gọi=(gán_sách) ] ] [ -h str ] [ -a [kiểu] ] [ vname[=giá trị ] ] hữu ích. Cảm ơn !
Đặt các thuộc tính và giá trị cho các biến và hàm shell. Khi được gọi vào bên trong
một chức năng được xác định với chức năng tên cú pháp, một phiên bản mới của biến
vname được tạo và giá trị và kiểu của biến được khôi phục khi hàm
hoàn thành. Danh sách các thuộc tính sau đây có thể được chỉ định:
-A Tuyên bố vname là một mảng kết hợp. Đăng ký là chuỗi thay vì
hơn biểu thức số học.
-C nguyên nhân mỗi vname là một biến phức hợp. giá trị đặt tên cho một hợp chất
biến nó được sao chép vào vname. Nếu không, nó sẽ bỏ thiết lập từng vname.
-a Tuyên bố vname là một mảng được lập chỉ mục. Nếu như kiểu được chỉ định, nó phải là
tên của một kiểu liệt kê được tạo với liệt kê lệnh và nó cho phép
các hằng số liệt kê được sử dụng làm chỉ số con.
-E Tuyên bố vname là một số dấu phẩy động có độ chính xác kép. Nếu như n không phải là
XNUMX, nó xác định số lượng các số liệu quan trọng được sử dụng khi
mở rộng vname. Nếu không, mười số liệu quan trọng sẽ được sử dụng.
-F Tuyên bố vname là một số dấu phẩy động có độ chính xác kép. Nếu như n không phải là
XNUMX, nó xác định số vị trí sau dấu thập phân được sử dụng
khi mở rộng vname. Nếu không, mười vị trí sau dấu thập phân sẽ là
đã sử dụng.
-H Tùy chọn này cung cấp UNIX để ánh xạ tệp tên máy chủ lưu trữ trên các máy không phải UNIX.
-L Căn trái và loại bỏ các khoảng trống ở đầu khỏi giá trị. Nếu n là khác XNUMX, nó
xác định chiều rộng của trường, nếu không nó được xác định bởi chiều rộng của
giá trị của phép gán đầu tiên. Khi biến được gán cho, nó sẽ
điền vào bên phải bằng các khoảng trống hoặc cắt bớt, nếu cần, để vừa với
cánh đồng. Các -R tùy chọn bị tắt.
-M Sử dụng ánh xạ ký tự lập bản đồ Được định nghĩa bởi wctrans(3). Như là hạ thấp
người đi du lịch khi gán một giá trị cho mỗi toán hạng được chỉ định. Khi nào
lập bản đồ được chỉ định và không có toán hạng, tất cả các biến sử dụng
ánh xạ được ghi vào đầu ra tiêu chuẩn. Khi nào lập bản đồ được bỏ qua và ở đó
không có toán hạng, tất cả các biến được ánh xạ đều được ghi vào đầu ra chuẩn.
-R Căn phải bên phải và điền vào chỗ trống ở đầu. Nếu như n là khác XNUMX, nó xác định
chiều rộng của trường, nếu không thì nó được xác định bởi chiều rộng của giá trị
của nhiệm vụ đầu tiên. Trường còn lại được lấp đầy bởi các khoảng trống hoặc bị cắt bớt từ
cuối nếu biến được gán lại. Các -L tùy chọn bị tắt.
-S Khi được sử dụng trong gán_sách của một định nghĩa kiểu, nó gây ra
biến phụ được chỉ định sẽ được chia sẻ bởi tất cả các trường hợp của loại. Khi đã sử dụng
bên trong một hàm được xác định với chức năng từ dành riêng, được chỉ định
các biến sẽ có chức năng tĩnh phạm vi. Nếu không, biến không được đặt
trước khi xử lý danh sách phân công.
-T Nếu theo sau bởi tên gọi, nó tạo ra một loại được đặt tên bởi tên gọi sử dụng hợp chất
chuyển nhượng gán_sách đến tên gọi. Nếu không, nó viết tất cả các loại
định nghĩa cho đầu ra tiêu chuẩn.
-X Tuyên bố vname trở thành một số dấu phẩy động chính xác gấp đôi và mở rộng
bằng cách sử dụng %a định dạng ISO-C99. Nếu như n khác XNUMX, nó xác định số lượng
chữ số hex sau dấu cơ số được sử dụng khi mở rộng vname. Các
mặc định là 10.
-Z Căn phải bên phải và điền bằng các số XNUMX ở đầu nếu ký tự không trống đầu tiên
là một chữ số và -L tùy chọn chưa được thiết lập. Loại bỏ các số không ở đầu nếu
-L tùy chọn cũng được thiết lập. Nếu như n khác XNUMX, nó xác định độ rộng của trường,
nếu không thì nó được xác định bởi độ rộng của giá trị của phép gán đầu tiên.
-f Các tên đề cập đến tên hàm chứ không phải tên biến. Không
nhiệm vụ có thể được thực hiện và các tùy chọn hợp lệ duy nhất khác là -S, -t, -u
-x. -S có thể được sử dụng với các chức năng kỷ luật được xác định trong một kiểu để
chỉ ra rằng hàm là tĩnh. Đối với một hàm tĩnh,
phương thức sẽ được sử dụng bởi tất cả các trường hợp của loại đó bất kể trường hợp nào
tham khảo nó. Ngoài ra, nó chỉ có thể sử dụng giá trị của các biến từ
định nghĩa kiểu gốc. Không thể xác định lại các chức năng kỷ luật này trong
bất kỳ trường hợp loại nào. Các -t tùy chọn bật theo dõi thực thi cho điều này
chức năng. Các -u tùy chọn này làm cho chức năng này được đánh dấu là không xác định. Các
FPATH biến sẽ được tìm kiếm để tìm định nghĩa hàm khi
hàm được tham chiếu. Nếu không có lựa chọn nào khác ngoài -f được chỉ định, sau đó
định nghĩa chức năng sẽ được hiển thị trên đầu ra tiêu chuẩn. Nếu như +f is
được chỉ định, sau đó là một dòng chứa tên hàm theo sau bởi một trình bao
nhận xét có chứa số dòng và tên đường dẫn của tệp nơi này
chức năng đã được xác định, nếu có, được hiển thị. Trạng thái thoát có thể được sử dụng để
xác định xem chức năng được định nghĩa để bộ sắp chữ -f .sh.math.tên
sẽ trả về 0 khi hàm toán học tên được xác định và khác XNUMX.
-b Biến có thể chứa bất kỳ số byte dữ liệu nào. Dữ liệu có thể là văn bản hoặc
nhị phân. Giá trị được biểu thị bằng mã hóa base64 của dữ liệu. Nếu như -Z
cũng được chỉ định, kích thước tính bằng byte của dữ liệu trong bộ đệm sẽ là
được xác định bởi kích thước được liên kết với -Z. Nếu chuỗi base64
kết quả được chỉ định trong nhiều dữ liệu hơn, nó sẽ bị cắt bớt. Nếu không, nó sẽ
được lấp đầy bởi các byte có giá trị bằng XNUMX. Các printf định dạng %B có thể được sử dụng để
xuất dữ liệu thực tế trong bộ đệm này thay vì mã hóa base64 của
dữ liệu.
-h Được sử dụng trong các định nghĩa kiểu để thêm thông tin khi tạo thông tin
về biến phụ trên trang người đàn ông. Nó bị bỏ qua khi được sử dụng bên ngoài
một định nghĩa kiểu. Khi sử dụng với -f thông tin được liên kết với
chức năng kỷ luật tương ứng.
-i Tuyên bố vname được biểu diễn bên trong dưới dạng số nguyên. Phía tay phải
của một phép gán được đánh giá là một biểu thức số học khi gán cho
một số nguyên. Nếu như n khác XNUMX, nó xác định cơ sở số học đầu ra,
nếu không thì cơ số đầu ra sẽ là mười.
-l Được sử dụng với -i, -E or -F, để biểu thị số nguyên dài hoặc số thực dài. Nếu không thì,
tất cả các ký tự viết hoa được chuyển đổi thành chữ thường. Chữ hoa
Tùy chọn, -u, bị tắt. Tương đương với -M hạ thấp .
-m di chuyển hoặc đổi tên biến. Giá trị là tên của một biến có
giá trị sẽ được chuyển đến vname. Biến ban đầu sẽ không được đặt. Không thể
được sử dụng với bất kỳ tùy chọn nào khác.
-n Tuyên bố vname là một tham chiếu đến biến có tên được xác định bởi
giá trị của biến vname. Điều này thường được sử dụng để tham chiếu một biến
bên trong một hàm có tên đã được truyền dưới dạng đối số. Không thể được sử dụng
với bất kỳ tùy chọn nào khác.
-p Tên, thuộc tính và giá trị cho các vnames được viết trên tiêu chuẩn
đầu ra ở dạng có thể được sử dụng làm đầu vào của trình bao. Nếu như +p được chỉ định, sau đó
các giá trị không được hiển thị.
-r Sự trao vnames được đánh dấu là chỉ đọc và những tên này không thể thay đổi bởi
sự phân công tiếp theo.
-t Gắn thẻ các biến. Thẻ là người dùng có thể xác định và không có ý nghĩa đặc biệt đối với
cái vỏ.
-u Khi được đưa ra cùng với -i, chỉ định số nguyên không dấu. Nếu không, tất cả đều thấp hơn-
các ký tự chữ hoa thường được chuyển đổi thành chữ hoa. Tùy chọn chữ thường, -l, Là
đã tắt. Tương đương với -M người đi du lịch .
-x Sự trao vnames được đánh dấu để xuất tự động sang môi trường of
các lệnh được thực hiện sau đó. Các biến có tên chứa . không thể
được xuất khẩu.

Sản phẩm -i thuộc tính không thể được chỉ định cùng với -R, -L, -Z, hoặc là -f.

Sử dụng + chứ không phải là - khiến các tùy chọn này bị tắt. Nếu không vname đối số
được đưa ra, một danh sách vname (và tùy chọn giá trị) của biến is
đã in. (Sử dụng + chứ không phải là - giữ cho các giá trị không bị in.) -p
nguyên nhân tùy chọn bộ sắp chữ theo sau là các chữ cái tùy chọn sẽ được in trước mỗi tên
chứ không phải là tên của các tùy chọn. Nếu có tùy chọn nào khác ngoài -p được đưa ra, chỉ
những biến có tất cả các tùy chọn đã cho sẽ được in. Nếu không
vnames và thuộc tính của tất cả các biến có các thuộc tính được in.

giới hạn [ -HSacdfmnpstv ] [ hạn chế ]
Đặt hoặc hiển thị giới hạn tài nguyên. Các giới hạn tài nguyên có sẵn được liệt kê bên dưới.
Nhiều hệ thống không hỗ trợ một hoặc nhiều giới hạn này. Giới hạn cho một
tài nguyên được đặt khi hạn chế được quy định. Giá trị của hạn chế có thể là một số trong
đơn vị được chỉ định bên dưới với mỗi tài nguyên hoặc giá trị vô hạn. Các -H-S
các tùy chọn chỉ định xem giới hạn cứng hay giới hạn mềm cho tài nguyên đã cho là
bộ. Không thể tăng giới hạn cứng sau khi đã thiết lập. Một giới hạn mềm có thể là
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 Tùy chọn là
được chỉ định, giới hạn áp dụng cho cả hai. Giới hạn tài nguyên hiện tại được in khi
hạn chế được bỏ qua. Trong trường hợp này, giới hạn mềm được in trừ khi H được quy định.
Khi nhiều tài nguyên được chỉ định, thì tên giới hạn và đơn vị sẽ được in
trước giá trị.
-a Liệt kê tất cả các giới hạn tài nguyên hiện tại.
-c Số lượng khối 512 byte trên kích thước của kết xuất lõi.
-d Số lượng K-byte trên kích thước của vùng dữ liệu.
-f Số khối 512 byte trên tệp có thể được ghi bởi hiện tại
quy trình hoặc quy trình con (có thể đọc tệp ở bất kỳ kích thước nào).
-m Số lượng K-byte trên kích thước của bộ nhớ vật lý.
-n Số lượng bộ mô tả tệp cộng với 1.
-p Số lượng khối 512 byte để đệm đường ống.
-s Số lượng K-byte trên kích thước của vùng ngăn xếp.
-t Số giây CPU được sử dụng cho mỗi quá trình.
-v Số lượng K-byte cho bộ nhớ ảo.

Nếu không có tùy chọn nào được đưa ra, -f được giả định.

cái ô [ -S ] [ mặt nạ ]
Mặt nạ tạo tệp người dùng được đặt thành mặt nạ (xem cái ô(2)). mặt nạ có thể là một
số bát phân hoặc một giá trị tượng trưng như được mô tả trong chmod(1). Nếu một giá trị tượng trưng là
đã cho, giá trị umask mới là phần bù của kết quả áp dụng mặt nạ đến
phần bù của giá trị umask trước đó. Nếu như mặt nạ 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 chế độ được in dưới dạng biểu tượng
giá trị. Nếu không, mặt nạ được in dưới dạng bát phân.

Unalias [ -a ] tên hữu ích. Cảm ơn !
Các bí danh được cung cấp bởi danh sách têns bị xóa khỏi danh sách bí danh. Các -a
tùy chọn khiến tất cả các bí danh không được đặt.

không đặt [ -fnv ] vname hữu ích. Cảm ơn !
Các biến được đưa ra bởi danh sách vnames là không được gán, tức là, ngoại trừ
các biến trong một kiểu, các giá trị và thuộc tính của chúng sẽ bị xóa. Đối với các biến phụ
của một kiểu, các giá trị được đặt lại thành giá trị mặc định từ định nghĩa kiểu.
Không thể bỏ đặt các biến chỉ đọc. Nếu -f tùy chọn được đặt, sau đó tên tham chiếu
đến chức năng những cái tên. Nếu -v tùy chọn được đặt, sau đó các tên tham chiếu đến biến
những cái tên. Các -f ghi đè tùy chọn -v. Nếu -n được thiết lập và tên là một tham chiếu tên,
sau đó tên sẽ không được đặt thay vì biến mà nó tham chiếu. Mặc định
tương đương với -v. Bỏ thiết lập DÒNG KHÔNG, KIỂM TRA THƯ, TỐI ƯU, TÙY CHỌN, RANDOM, GIÂY,
TMOUT_ loại bỏ ý nghĩa đặc biệt của chúng ngay cả khi chúng được chỉ định sau đó
đến.

chờ đợi [ việc làm ...]
Chờ cho các chỉ định việc làm và báo cáo tình trạng chấm dứt của nó. Nếu như việc làm không được đưa ra,
thì tất cả các tiến trình con hiện đang hoạt động được chờ đợi. Trạng thái thoát khỏi
lệnh này là của quá trình cuối cùng được chờ đợi nếu việc làm được quy định; nếu không thì
nó bằng không. Nhìn thấy việc làm để biết mô tả về định dạng của việc làm.

thời gian [ -afpv ] tên hữu ích. Cảm ơn !
Cho mỗi tên, cho biết nó sẽ được diễn giải như thế nào nếu được sử dụng làm tên lệnh.
Sản phẩm -v tùy chọn tạo ra một báo cáo dài hơn. Các -f tùy chọn bỏ qua tìm kiếm
chức năng. Các -p tùy chọn tìm kiếm đường dẫn cho tên ngay cả khi tên là một bí danh, một
chức năng, hoặc một từ dành riêng. Các -p tùy chọn tắt -v Lựa chọn. Các -a
tùy chọn tương tự như -v tùy chọn nhưng gây ra tất cả các diễn giải về tên đã cho
được báo cáo.

Sự mời gọi.
Nếu shell được gọi bởi giám đốc điều hành(2) và ký tự đầu tiên của đối số XNUMX ($0) là -,
thì shell được giả định là đăng nhập shell và các lệnh được đọc từ / etc / profile
sau đó từ một trong hai .Hồ sơ trong thư mục hiện tại hoặc $ HOME / .profile, nếu một trong hai tệp
tồn tại. Tiếp theo, đối với shell tương tác, các lệnh được đọc từ tệp được đặt tên bằng cách thực hiện
mở rộng tham số, thay thế lệnh và thay thế số học trên giá trị của
biến môi trường ENV nếu tệp tồn tại. Nếu -s tùy chọn không hiện tại và arg
một tập tin có tên arg tồn tại, sau đó nó đọc và thực thi tập lệnh này. Ngược lại, nếu
đầu tiên arg không chứa một /, tìm kiếm đường dẫn được thực hiện trên arg đến
xác định tên của script để thực thi. Kịch bản arg phải có quyền thực thi
và bất kỳ cài đặt thời gianngười đần độn cài đặt sẽ bị bỏ qua. Nếu tập lệnh không được tìm thấy trên
CON ĐƯỜNG arg được xử lý như thể nó được đặt tên là một lệnh hoặc hàm tích hợp sẵn. Các lệnh sau đó
đọc như mô tả dưới đây; các tùy chọn sau được giải thích bởi shell khi nó
viện dẫn:

-D Không thực thi tập lệnh, nhưng xuất tập hợp các chuỗi được trích dẫn kép đứng trước
a $. Các chuỗi này cần thiết để bản địa hóa tập lệnh sang các
địa phương
-E Đọc tệp được đặt tên bởi ENV biến hoặc bởi $ HOME /.kshrc nếu không được định nghĩa sau
các cấu hình.
-c Nếu -c tùy chọn hiện có, sau đó các lệnh được đọc từ tùy chọn đầu tiên arg. Bất kì
các đối số còn lại trở thành tham số vị trí bắt đầu từ 0.
-s Nếu -s tùy chọn hiện diện hoặc nếu không có đối số nào còn lại, thì các lệnh sẽ được đọc
từ đầu vào tiêu chuẩn. Đầu ra của Shell, ngoại trừ đầu ra của Reduct ®
Lệnh được liệt kê ở trên, được ghi vào bộ mô tả tệp 2.
-i Nếu -i có tùy chọn hoặc nếu đầu vào và đầu ra của trình bao được gắn với một
thiết bị đầu cuối (như đã nói bởi tcgetattr(2)), thì vỏ này là tương tác. Trong
trường hợp TERM được bỏ qua (để giết 0 không giết một trình bao tương tác) và
INTR bị bắt và bị bỏ qua (do đó chờ đợi Là ). Trong mọi trường hợp, QUIT bị bỏ qua bởi
cái vỏ.
-r Nếu -r có tùy chọn, trình bao là một trình bao bị hạn chế.
-D Danh sách tất cả các chuỗi được trích dẫn kép đứng trước một $ sẽ được in trên
đầu ra tiêu chuẩn và vỏ sẽ thoát ra. Tập hợp các chuỗi này sẽ phụ thuộc vào
dịch ngôn ngữ khi ngôn ngữ không phải là C hoặc POSIX. Không có lệnh nào sẽ được
Thực thi.
-R tên tập tin
Sản phẩm -R tên tập tin tùy chọn được sử dụng để tạo cơ sở dữ liệu tham chiếu chéo có thể
được sử dụng bởi một tiện ích riêng biệt để tìm định nghĩa và tham chiếu cho các biến
và các lệnh.
Các tùy chọn và đối số còn lại được mô tả trong định lệnh trên. Một
không bắt buộc - vì đối số đầu tiên bị bỏ qua.
Rksh Chỉ có.
Rksh được sử dụng để thiết lập tên đăng nhập và môi trường thực thi có nhiều khả năng hơn
được kiểm soát hơn so với những loại vỏ tiêu chuẩn. Các hành động của rksh giống hệt những thứ đó
of ksh, ngoại trừ những điều sau đây không được phép:
Bỏ thiết lập tùy chọn bị hạn chế.
thay đổi thư mục (xem cd(số 1)),
thiết lập hoặc bỏ thiết lập giá trị hoặc thuộc tính của SHELL, ENV, FPATH, hoặc là CON ĐƯỜNG,
xác định đường dẫn hoặc tên lệnh có chứa /,
chuyển hướng đầu ra (>, >|, <>>>).
thêm hoặc xóa các lệnh cài sẵn.
sử dụng lệnh -p để gọi một lệnh.

Các hạn chế ở trên được thực thi sau khi .Hồ sơENV các tệp được thông dịch.

Khi một lệnh được thực thi được coi là một thủ tục shell, rksh viện dẫn ksh đến
Thực hiện nó. Do đó, có thể cung cấp cho người dùng cuối các thủ tục shell có
truy cập vào toàn bộ sức mạnh của trình bao tiêu chuẩn, trong khi áp đặt một menu lệnh hạn chế;
lược đồ này giả định rằng người dùng cuối không có quyền ghi và thực thi trong
cùng một thư mục.

Hiệu quả thực sự của các quy tắc này là tác giả của .Hồ sơ có toàn quyền kiểm soát
hành động của người dùng, bằng cách thực hiện các hành động thiết lập được đảm bảo và để người dùng ở
thư mục thích hợp (có thể là không thư mục đăng nhập).

Người quản trị hệ thống thường thiết lập một thư mục lệnh (ví dụ: / usr / rbin) Việc đó có thể
được mời gọi một cách an toàn bởi rksh.

EXIT TÌNH TRẠNG


Các lỗi được trình bao phát hiện, chẳng hạn như lỗi cú pháp, khiến trình bao trả về giá trị khác XNUMX
trạng thái thoát. Nếu shell đang được sử dụng không tương tác, thì việc thực thi shell
tệp bị bỏ trừ khi lỗi xảy ra bên trong một vỏ con, trong trường hợp đó, vỏ con là
bị bỏ rơi. Nếu không, trình bao trả về trạng thái thoát của lệnh cuối cùng được thực thi (xem
cũng là ra lệnh trên). Lỗi thời gian chạy được phát hiện bởi trình bao được báo cáo bởi
in lệnh hoặc tên chức năng và điều kiện lỗi. Nếu dòng số đó
lỗi xảy ra trên lớn hơn một, thì số dòng cũng được in theo hình vuông
dấu ngoặc ([]) sau tên lệnh hoặc hàm.

Sử dụng ksh93 trực tuyến bằng 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
    Thông tin kỹ thuật số Canon EOS
    Thông tin kỹ thuật số Canon EOS
    Canon không có số lượng màn trập
    có trong thông tin EXIF ​​của một
    tệp hình ảnh, trái ngược với Nikon và
    ống nhòm. Không có cơ sở chính thức nào của Canon
    ứng dụng ...
    Tải xuống thông tin Canon EOS DIGITAL
  • 2
    rEFInd
    rEFInd
    rEFInd là một nhánh của khởi động rEFIt
    người quản lý. Giống như rEFIt, rEFInd có thể
    tự động phát hiện khởi động EFI đã cài đặt của bạn
    trình tải và nó trình bày một giao diện đồ họa đẹp mắt
    menu tùy chọn khởi động ...
    Tải xuống rEFInd
  • 3
    Thể hiệnLuke GSI
    Thể hiệnLuke GSI
    Trang tải xuống SourceForge này là để
    cấp cho người dùng tải xuống nguồn của tôi được xây dựng
    GSI, dựa trên công trình vĩ đại của phhusson
    công việc. Tôi xây dựng cả Android Pie và
    Android 1 ...
    Tải xuống ExpressLuke GSI
  • 4
    Trình phát nhạc
    Trình phát nhạc
    Music Caster là một trình phát nhạc dạng khay
    cho phép bạn truyền nhạc địa phương của mình sang một
    Thiết bị Google Cast. Trong lần chạy đầu tiên,
    bạn sẽ cần phải nhấp vào mũi tên trong
    nhiệm vụ ...
    Tải xuống Music Caster
  • 5
    PyQt
    PyQt
    PyQt là ràng buộc Python cho
    Đa nền tảng Qt của Digia
    khung phát triển ứng dụng. Nó
    hỗ trợ Python v2 và v3 và Qt v4 và
    Qt v5. PyQt có sẵn...
    Tải xuống PyQt
  • 6
    Sardi
    Sardi
    Sardi là một bản tái cấu trúc hoàn chỉnh và
    tối ưu hóa mã svg. 6 lựa chọn cho
    ứng dụng của bạn và 10 loại thư mục
    để sử dụng trong trình quản lý tệp của bạn. Cá sardi
    biểu tượng ...
    Tải xuống Sardi
  • Khác »

Lệnh Linux

  • 1
    abi-theo dõi
    abi-theo dõi
    abi-tracker - trực quan hóa các thay đổi ABI
    dòng thời gian của thư viện phần mềm C/C++.
    MÔ TẢ: TÊN: ABI Tracker
    (abi-tracker) Trực quan hóa các thay đổi ABI
    dòng thời gian của C/C+...
    Chạy abi-tracker
  • 2
    abicheck
    abicheck
    abicheck - kiểm tra nhị phân ứng dụng
    cho các cuộc gọi đến các biểu tượng riêng tư hoặc đang phát triển
    trong các thư viện và để liên kết tĩnh của
    một số thư viện hệ thống. ...
    Chạy abicheck
  • 3
    cpanmp
    cpanmp
    cpanm - lấy, giải nén và cài đặt
    mô-đun từ CPAN ...
    Chạy cpanmp
  • 4
    cpanpp
    cpanpp
    cpanp - Trình khởi chạy CPANPLUS ...
    Chạy cpanpp
  • 5
    gajim-từ xa
    gajim-từ xa
    gajim-remote � một tiện ích điều khiển từ xa
    cho gajim(1) ...
    Chạy gajim-remote
  • 6
    chàng
    chàng
    gajim � một máy khách Jabber/XMPP ...
    chạy gajim
  • Khác »

Ad