영어프랑스어스페인어

Ad


온웍스 파비콘

mksh-static - 클라우드 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 공급자에서 mksh-static 실행

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 mksh-static 명령입니다.

프로그램:

이름


mksh, sh — MirBSD 콘 쉘

개요


mksh [-+abCefhiklmnprUuvXx] [-T [!]청각 장애 | -] [-+오 선택권] [-c | -s | 파일
[논의 ...]]
내장 이름 [논의 ...]

기술


mksh 대화식 및 쉘 스크립트 사용을 위한 명령 해석기입니다. 그것은
명령 언어는 sh(C) 셸 언어의 상위 집합이며 대체로 다음과 호환됩니다.
원래 Korn 쉘. 때때로 이 매뉴얼 페이지는 스크립팅 조언을 제공할 수 있습니다. 동안
때때로 이식 가능한 쉘 스크립팅 또는 다양한 표준을 모두 고려합니다.
정보가 가장 먼저 제공됩니다. mksh 염두에 두고 그렇게 받아들여야 합니다.

나는 해요 an Android 사용자, so 뭐지 mksh?
mksh UNIX 쉘/명령 인터프리터로, 다음과 유사합니다. COMMAND.COM or CMD.EXE,있다
한동안 Android 오픈 소스 프로젝트에 포함되었습니다. 기본적으로 프로그램이다.
터미널(콘솔 창)에서 실행되고, 사용자 입력을 받아 명령 또는 스크립트를 실행하고,
백그라운드에서도 다른 프로그램에서 수행하도록 요청할 수도 있습니다. 모든 권한
따라서 발생할 수 있는 팝업은 mksh 문제이지만 다른 사람의 질문
그것을 활용한 프로그램.

기도
대부분의 빌트인은 직접 호출할 수 있습니다. 예를 들어 링크가 이름에서
껍데기; 모두 말이 되는 것은 아니지만 테스트를 거쳤거나 전혀 작동하지 않습니다.

옵션은 다음과 같습니다

-c mksh 에 포함된 명령을 실행합니다. .

-i 인터랙티브 쉘. 표준 입력에서 명령을 읽는 쉘은
이 옵션이 사용되거나 표준 입력과 표준 오류가 모두 사용되는 경우 "대화식"
에 붙어있다 청각 장애(4). 대화형 셸에는 작업 제어가 활성화되어 있으며 무시합니다.
SIGINT, SIGQUIT 및 SIGTERM 신호를 전송하고 입력을 읽기 전에 프롬프트를 인쇄합니다.
(PS1 및 PS2 매개변수 참조). 또한 ENV 매개변수 또는
mkshrc 파일(아래 참조). 비대화형 쉘의 경우 트랙올 옵션이 켜져 있습니다
기본적으로(참조 세트 아래 명령).

-l 로그인 쉘. 쉘이 호출되는 기본 이름(예: argv[0])이 다음으로 시작하는 경우
'-' 또는 이 옵션을 사용하면 쉘이 로그인 쉘로 간주됩니다. 보다
시작 파일 아래.

-p 특권 쉘. 실제 사용자 ID 또는 그룹 ID가 권한이 있는 경우 쉘은 "권한이 있는" 것입니다.
유효한 사용자 ID 또는 그룹 ID와 일치하지 않습니다(참조 게투이드(2)과하면 당황하다(삼)).
권한 있는 옵션을 지우면 셸이 유효 사용자 ID를 설정합니다.
(그룹 ID)를 실제 사용자 ID(그룹 ID)로 변경합니다. 자세한 내용은 다음을 참조하십시오. 시작
파일. 쉘에 권한이 있고 이 플래그가 명시적으로 설정되지 않은 경우
"privileged" 옵션은 시작 파일을 처리한 후 자동으로 지워집니다.

-r 제한된 쉘. 이 옵션을 사용하면 쉘이 "제한"됩니다. 다음과 같은
제한 사항은 셸이 프로필 및 ENV를 처리한 후에 적용됩니다.
파일 :

· XNUMXD덴탈의 cd (그리고 chdir) 명령이 비활성화됩니다.
· SHELL, ENV 및 PATH 매개변수는 변경할 수 없습니다.
· 명령 이름은 절대 또는 상대 경로로 지정할 수 없습니다.
· XNUMXD덴탈의 -p 내장 명령의 옵션 명령 사용할 수 없습니다.
· 파일을 생성하는 리디렉션은 사용할 수 없습니다(예: '>', '>|', '>>', '<>').

-s 쉘은 표준 입력에서 명령을 읽습니다. 옵션이 아닌 모든 인수는
위치 매개변수

-T namemksh 를 시청하여 이에 대해 더 많은 정보를 얻을 수 있습니다. 청각 장애(4) 주어진 장치. 경로 name, /dev/ttyC이름
/dev/tty이름 순서대로 시도된다. 하지 않는 한 name 느낌표로 시작
('!'), 이는 서브쉘에서 수행되며 즉시 리턴됩니다. 만약에 name 대시입니다
('-'), 대신 제어 터미널(daemonise)에서 분리합니다.

위의 옵션 외에도 세트 내장 명령도 사용할 수 있습니다.
명령줄에서: 둘 다 [-+abCefhkmnuvXx] 및 [-+오 선택권] 단일 문자에 사용할 수 있습니다.
또는 각각 긴 옵션.

둘 다 -c-s 옵션이 지정되면 옵션이 아닌 첫 번째 인수는 다음을 지정합니다.
쉘이 명령을 읽는 파일의 이름. 옵션 인수가 아닌 경우
쉘은 표준 입력에서 명령을 읽습니다. 쉘의 이름(즉,
$0)는 다음과 같이 결정됩니다. -c 옵션이 사용되고 있고 옵션이 아닌 인수가 있는 경우,
이름으로 사용됩니다. 파일에서 명령을 읽는 중이면 파일이 다음으로 사용됩니다.
이름; 그렇지 않으면 쉘이 호출된 기본 이름(예: argv[0])이 사용됩니다.

명령줄에 지정된 명령 파일이 다음과 같은 경우 쉘의 종료 상태는 127입니다.
열리지 않거나 치명적인 구문 오류가 실행 중에 발생한 경우 XNUMX이 아닙니다.
스크립트. 치명적 오류가 없는 경우 종료 상태는 마지막 명령의 종료 상태입니다.
실행되거나 명령이 실행되지 않으면 XNUMX입니다.

시작 파일
이러한 파일의 실제 위치는 다음을 참조하십시오. 파일. 로그인 쉘은 시스템을 처리합니다.
먼저 프로필. 그러면 특권 쉘이 suid 프로파일을 처리합니다. 권한이 없는 로그인
쉘은 다음에 사용자 프로파일을 처리합니다. 권한이 없는 대화형 셸이 값을 확인합니다.
매개변수, 명령, 산술 및 물결표('~')를 적용한 후 ENV 매개변수의
치환; 설정되지 않았거나 비어 있으면 사용자 mkshrc 프로필이 처리됩니다. 그렇지 않으면 파일
이름이 대체 결과인 경우 처리됩니다. 존재하지 않는 것은 조용히
무시했다. 그런 다음 권한 있는 셸은 권한이 없는 경우 권한을 삭제합니다. -p 에 주어진 옵션
시작 파일을 실행하는 동안 명령줄도 설정하지도 않습니다.

명령 구문
셸은 백슬래시-개행 조합을 제거하여 입력 구문 분석을 시작한 다음
그것을 깨고 . 단어(문자열)는 따옴표 없이 구분됩니다.
공백 문자(공백, 탭 및 줄 바꿈) 또는 메타 문자('<', '>', '|', ';', '(',
')', 그리고 '&'). 단어를 구분하는 것 외에 공백과 탭은 무시되지만 개행 문자는
일반적으로 명령을 구분합니다. 메타 문자는 다음을 구축하는 데 사용됩니다. 토큰:
'<', '<&', '<<', '<<<', '>', '>&', '>>', '&>' 등은 리디렉션을 지정하는 데 사용됩니다(참조
입출력 리디렉션 아래에); '|' 파이프라인을 만드는 데 사용됩니다. '|&'는 공동 생성에 사용됩니다.
프로세스(참조 공동 프로세스 아래에); ';' 명령을 분리하는 데 사용됩니다. '&'를 사용하여 생성
비동기 파이프라인; '&&' 및 '||' 조건부 실행을 지정하는 데 사용됩니다. ';;', ';&'
그리고 ';|' 에서 사용됩니다 케이스 진술; '(( .. ))'는 산술식에 사용됩니다. 그리고
마지막으로 '( .. )'는 서브쉘을 생성하는 데 사용됩니다.

공백 및 메타 문자는 백슬래시('\')를 사용하여 개별적으로 인용할 수 있습니다.
큰따옴표('"') 또는 작은따옴표(“'”)를 사용하여 그룹화합니다. 다음 문자는
또한 쉘에 의해 특별히 취급되며 자신을 나타내려면 인용되어야 합니다.
'\', '"', ''', '#', '$', '`', '~', '{', '}', '*', '?' 및 '['. 이 중 처음 세 개
위에서 언급한 인용 문자입니다(참조 인용 아래에); '#', 다음에 사용하는 경우
단어의 시작, 주석을 소개합니다 – '#' 이후부터 가장 가까운 것까지 모든 것
개행은 무시됩니다. '$'는 매개변수, 명령 및 산술을 소개하는 데 사용됩니다.
대체(참조 치환 아래에); '`'는 구식 명령 대체를 도입합니다.
(참조 치환 아래에); '~'는 디렉토리 확장을 시작합니다(참조 틸데 확장 아래에); '{'
및 '}' 구분 CSH(1) 스타일 교대(참조 가새 확장 아래에); 그리고 마지막으로, '*',
'?' 및 '['는 파일 이름 생성에 사용됩니다(참조 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에 name 패턴 아래).

단어와 토큰이 구문 분석됨에 따라 쉘은 두 가지 기본 명령이 있는 명령을 빌드합니다.
유형 : 간단한 명령, 일반적으로 실행되는 프로그램 및 복합 명령그런
as for if 명령문, 그룹화 구문 및 함수 정의.

단순 명령은 매개변수 할당의 일부 조합으로 구성됩니다(참조 파라미터
아래), 입력/출력 리디렉션(참조 입출력 리디렉션 아래) 및 명령어;
유일한 제한은 매개 변수 할당이 명령 단어 앞에 오는 것입니다. 그만큼
명령 단어(있는 경우)는 실행할 명령과 해당 인수를 정의합니다. 그만큼
명령은 쉘 내장 명령, 함수 또는 외부 명령(즉, 별도의
PATH 매개변수를 사용하여 찾은 실행 파일. 보다 명령 실행 아래).
모든 명령 구조에는 종료 상태가 있습니다. 외부 명령의 경우 이것은 관련이 있습니다.
에 의해 반환된 상태로 기다리다(2) (명령을 찾을 수 없는 경우 종료 상태는
127; 실행할 수 없는 경우 종료 상태는 126입니다. 다른 명령의 종료 상태
구문(내장 명령, 함수, 복합 명령, 파이프라인, 목록 등)은 모두
구조가 설명된 곳에 잘 정의되어 있고 설명되어 있습니다. 종료 상태
매개변수 할당으로만 구성된 명령은 마지막 명령 대체의 명령입니다.
매개변수 지정 중에 수행되거나 명령 대체가 없는 경우 0입니다.

명령은 '|'를 사용하여 함께 연결할 수 있습니다. 파이프라인을 형성하는 토큰
각 명령의 표준 출력이지만 마지막 명령은 파이프됩니다(참조 파이프(2))의 표준 입력으로
다음 명령. 파이프라인의 종료 상태는 마지막 명령의 종료 상태입니다.
전에, 파이프 실패 옵션이 설정되었습니다(참조). 파이프라인의 모든 명령은 별도로 실행됩니다.
서브쉘; 이것은 POSIX에서 허용되지만 AT&T UNIX의 두 변종과는 다릅니다. KSH어디로
마지막 명령을 제외한 모든 명령은 서브쉘에서 실행되었습니다. 참조 읽기 빌트인의 설명
영향 및 해결 방법. 파이프라인 앞에 '!'가 붙을 수 있습니다. 예약어
파이프라인의 종료 상태가 논리적으로 보완되도록 합니다. 원래 상태가
0이면 보완된 상태는 1이 됩니다. 원래 상태가 0이 아닌 경우 보완
상태는 0이 됩니다.

기울기 of 명령은 다음 토큰 중 하나로 파이프라인을 분리하여 만들 수 있습니다.
'&&', '||', '&', '|&' 및 ';'. 처음 두 개는 조건부 실행을 위한 것입니다.cmd1 && cmd2"
실행 cmd2 종료 상태인 경우에만 cmd1 XNUMX입니다. '||' 반대입니다 - cmd2 is
종료 상태인 경우에만 실행 cmd1 XNUMX이 아닙니다. '&&' 및 '||' 동등한 우선권을 가진다
이는 '&', '|&' 및 ';'보다 우선 순위가 동일합니다. 메모
'&&' 및 '||' 연산자는 "왼쪽 연관"입니다. 예를 들어, 이 둘 모두
명령은 "bar"만 인쇄합니다.

$ 거짓 && 에코 푸 || 에코 바
$ 참 || 에코 푸 && 에코 바

'&' 토큰을 사용하면 앞의 명령이 비동기적으로 실행됩니다. 즉, 껍질
명령을 시작하지만 명령이 완료될 때까지 기다리지 않습니다(쉘은
비동기 명령의 상태; 보다 제어 아래에). 비동기 명령이 있을 때
작업 제어가 비활성화되었을 때(예: 대부분의 스크립트에서) 명령이 시작됩니다.
신호 SIGINT 및 SIGQUIT는 무시되고 입력은 / dev / null (하지만,
비동기 명령에 지정된 리디렉션이 우선합니다. '|&' 연산자
특별한 종류의 비동기 프로세스인 공동 프로세스를 시작합니다(참조 공동 프로세스
아래에). 명령은 '&&' 및 '||' 다음에 와야 합니다. 필요하지 않은 동안
'&', '|&' 또는 ';'을 따릅니다. 목록의 종료 상태는 마지막으로 실행된 명령의 종료 상태입니다.
종료 상태가 0인 비동기 목록은 예외입니다.

복합 명령은 다음 예약어를 사용하여 생성됩니다. 이 단어들은 단지
인용되지 않은 경우와 명령의 첫 단어로 사용되는 경우(예:
매개변수 할당 또는 리디렉션이 앞에 올 수 없음):

case else 함수 그때 ! (
시간 [[ ((
{까지 완료
동안 선택을 위한 elif }

다음 복합 명령 설명에서 명령 목록( 명부) 그것은
예약어 뒤에 오는 단어는 세미콜론, 줄 바꿈 또는 a(문법적으로
맞음) 예약어. 예를 들어 다음은 모두 유효합니다.

$ { 에코 푸; 에코 바; }
$ { 에코 푸; 에코 바 }
$ { { 에코 푸; 에코 바; } }

이것은 유효하지 않습니다:

$ { 에코 푸; 에코 바 }

(명부)
실행하다 명부 서브쉘에서. 환경 변경 사항을 전달하는 암시적 방법은 없습니다.
상위 쉘로 돌아가는 하위 쉘.

{ 명부; }
복합 구조물; 명부 실행되지만 서브쉘에서는 실행되지 않습니다. '{' 및 '}'에 유의하십시오.
메타 문자가 아닌 예약어입니다.

케이스 워드 안에 [[(] 무늬 [| 무늬] ...) 명부 터미네이터] ... 이삭
XNUMXD덴탈의 케이스 일치를 시도하는 문 워드 지정된 무늬; 명부
성공적으로 일치된 첫 번째 패턴과 연관된 실행됩니다. 사용된 패턴
케이스 명령문은 파일 이름 패턴에 사용되는 것과 동일합니다.
'.'에 대한 제한 및 '/'가 삭제됩니다. 인용되지 않은 공백은
패턴이 벗겨진 후; 패턴 내의 모든 공백은 따옴표로 묶어야 합니다. 둘 다
단어와 패턴은 매개변수, 명령 및 산술 대체의 영향을 받습니다.
뿐만 아니라 물결표 대체.

역사적 이유로 여는 중괄호와 닫는 중괄호를 대신 사용할 수 있습니다. in그 C
케이스 $foo { *) 에코 ;; }.

목록 터미네이터s는:

';;' 목록 뒤에 종료합니다.

';&' 다음 목록으로 넘어갑니다.

';|' 나머지 패턴 목록 튜플을 평가합니다.

종료 상태 케이스 진술은 실행의 명부; 아니라면 명부 is
실행되면 종료 상태는 XNUMX입니다.

for name [에 워드 ...]; 하다 명부; 완료
각각 워드 지정된 단어 목록에서 매개변수 name 단어로 설정되고
명부 실행됩니다. 만약에 in 단어 목록을 지정하는 데 사용되지 않는 위치 매개변수
($1, $2 등)이 대신 사용됩니다. 역사적인 이유로 개방 및 폐쇄 중괄호는
대신 사용 dofor i; { 에코 $나는; }. 종료 상태 for
statement는 마지막 종료 상태입니다. 명부; 만약 명부 실행되지 않음, 종료 상태
XNUMX입니다.

if 명부; 그때 명부; [엘리프 명부; 그때 명부;] ... [또 다른 명부;] 파이
첫 번째 종료 상태인 경우 명부 제로, 두 번째 명부 실행됩니다. 그렇지 않으면,
전에, 명부 다음 ELIF, 있는 경우 유사한 결과로 실행됩니다. 모두
다음 목록 ifELIFs 실패(즉, XNUMX이 아닌 상태로 종료), 명부
다음 그렇지 않으면 실행됩니다. 종료 상태 if 진술은 비
조건부의 명부 그것은 실행됩니다. 조건이 없다면 명부 실행되고 종료
상태는 XNUMX입니다.

고르다 name [에 워드 ...]; 하다 명부; 완료
XNUMXD덴탈의 고르다 문은 사용자에게 메뉴를 표시하는 자동 방법을 제공합니다.
그리고 그 중에서 선택합니다. 지정된 열거형 목록 워드(s)에 인쇄됨
표준 오류 다음에 프롬프트가 표시됩니다(PS3: 일반적으로 '#? '). 에 해당하는 숫자
그런 다음 열거된 단어 중 하나를 표준 입력에서 읽습니다. name 받는 사람 설정
선택한 단어(또는 선택이 유효하지 않은 경우 설정 해제), REPLY는 읽은 내용으로 설정됩니다.
(선행/후행 공백이 제거됨) 및 명부 실행됩니다. 빈 줄(예:
XNUMX개 이상의 IFS 옥텟)이 입력되면 실행하지 않고 메뉴가 다시 인쇄됩니다. 명부.

인셀덤 공식 판매점인 명부 REPLY가 NULL이면 열거된 목록이 인쇄되고 프롬프트는 다음과 같습니다.
인쇄 등이 있습니다. 이 프로세스는 파일 끝을 읽을 때까지 계속됩니다.
수신되거나 하다 문은 루프 내에서 실행됩니다. "단어로 ..."인 경우
생략하면 위치 매개변수가 사용됩니다(예: $1, $2 등). 역사적으로
이유 때문에 여는 중괄호와 닫는 중괄호를 대신 사용할 수 있습니다. do고르다 i; {
에코 $나는; }. 종료 상태 고르다 문은 다음과 같은 경우 XNUMX입니다. 하다 진술은
루프를 종료하는 데 사용되며, 그렇지 않으면 XNUMX이 아닙니다.

까지 명부; ~하다 명부; 완료
이것은 다음과 같이 작동합니다 동안, 종료 상태인 동안에만 본문이 실행된다는 점을 제외하고
첫번째 명부 XNUMX이 아닙니다.

동안 명부; ~하다 명부; 완료
A 동안 미리 확인된 루프입니다. 그것의 본문은 종료 상태만큼 자주 실행됩니다.
첫번째 명부 XNUMX입니다. 종료 상태 동안 statement는 마지막 종료 상태입니다.
명부 루프 본문에서; 본문이 실행되지 않으면 종료 상태는
제로.

기능 name { 명부; }
기능을 정의합니다 name (참조 기능 아래에). 지정된 리디렉션에 유의하십시오.
함수 정의 후 함수가 실행될 때마다 수행됩니다.
함수 정의가 실행됩니다.

name() 명령
대부분 동일 기능 (참조 기능 아래에). 뒤에 공백(공백 또는 탭)
name 대부분 무시됩니다.

기능 name() { 명부; }
같은 name() (세게 때리다주의). 그만큼 기능 키워드는 무시됩니다.

시간 [-p] [관로]
XNUMXD덴탈의 명령 실행 섹션에서는 다음을 설명합니다. 시간 예약어.

(( 표현 ))
산술식 표현 평가된다; "let 식"과 동일합니다(참조
산수 표현 그리고 하자 명령, 아래) 복합 구조에서.

[[ 표현 ]]
받는 유사 test[ ... ] 명령(나중에 설명), 다음 포함
예외:

· 필드 분할 및 파일 이름 생성은 인수에서 수행되지 않습니다.

· XNUMXD덴탈의 -a (그리고) 그리고 -o (OR) 연산자는 각각 '&&' 및 '||'로 대체됩니다.

· 연산자(예: '-f', '=', '!')는 인용 부호를 사용하지 않아야 합니다.

· 매개변수, 명령 및 산술 대체는 표현식이 다음과 같이 수행됩니다.
'&&' 및 '||' 운영자.
이것은 다음 진술에서, $( 다음과 같은 경우에만 평가됩니다.
파일 존재하고 읽을 수 있음:

$ [[ -r 푸 && $(

· '!=' 및 '=' 식의 두 번째 피연산자는 패턴의 하위 집합입니다(예:
비교 [[ foobar = 정말로 ]] 성공). 이는 간접적으로도 작동합니다.

$바=푸바; baz='f*r'
$[[ $bar = $baz ]]; 에코 $?
$ [[ $bar = "$baz" ]]; 에코 $?

놀랍게도 첫 번째 비교는 성공했지만 두 번째 비교는 성공하지 못했습니다.
이것은 현재 모든 extglob 메타 문자에 적용되지 않습니다.

인용
인용 부호는 쉘이 문자나 단어를 특별하게 취급하는 것을 방지하는 데 사용됩니다. 있다
세 가지 인용 방법. 먼저 '\'는 다음 문자를 인용합니다.
라인의 끝, 이 경우 '\'와 줄 바꿈이 모두 제거됩니다. 둘째, 싱글
인용 부호(“'”)는 다음 작은따옴표까지 모든 것을 인용합니다(여러 줄에 걸쳐 있을 수 있음). 셋째,
큰따옴표('"')는 '$', '`' 및 '\'를 제외한 모든 문자를 이스케이프 처리되지 않은 다음 문자까지 인용합니다.
큰따옴표. 큰따옴표 안의 '$' 및 '`'는 일반적인 의미를 갖습니다(예: 매개변수,
산술 또는 명령 대체) 결과에 대해 필드 분할이 수행되지 않는 경우 제외
큰 따옴표로 묶인 대체 및 이전 스타일의 명령 대체 형식은 다음과 같습니다.
큰따옴표에 백슬래시 인용 사용 가능. 큰따옴표로 묶인 문자열 안에 '\'가 있는 경우
뒤에 '\', '$', '`' 또는 '"'가 오면 두 번째 문자로 대체됩니다.
개행에 의해 '\'와 개행이 모두 제거됩니다. 그렇지 않으면 '\'와
다음 문자는 변경되지 않습니다.

작은 따옴표로 묶인 문자열 앞에 따옴표 없는 '$'가 있으면 C 스타일 백슬래시 확장(참조:
이하) 적용(내부 작은따옴표 문자도 이스케이프 가능하며 종료되지 않음)
그런 다음 문자열); 확장된 결과는 작은따옴표로 묶인 다른 문자열로 처리됩니다. 만약
큰 따옴표로 묶인 문자열 앞에 따옴표 없는 '$'가 있으면 '$'는 무시됩니다.

백 슬래시 확장
백슬래시가 확장된 위치에서 특정 C 및 AT&T UNIX KSH 또는 GNU 세게 때리다 스타일
이스케이프가 번역됩니다. 여기에는 '\a', '\b', '\f', '\n', '\r', '\t', '\U########',
'\u####' 및 '\v'. '\U########' 및 '\u####'에서 "#"은 XNUMX진수를 의미합니다.
최대 8개 또는 XNUMX개까지 없을 수 있습니다. 이러한 이스케이프는 유니코드 코드포인트를 UTF-XNUMX로 변환합니다.
또한 '\E' 및 '\e'는 이스케이프 문자로 확장됩니다.

. 인쇄 내장 모드, '\"', '\'' 및 '\?' 명시적으로 제외됨, XNUMX진수 시퀀스
숫자 0('\XNUMX###')이 접두사로 붙은 최대 XNUMX개의 XNUMX진수 "#" 없음이 있어야 합니다.
XNUMX진수 시퀀스 '\x##'는 최대 XNUMX개의 XNUMX진수 "#"로 제한됩니다. 둘 다
XNUMX진수 및 XNUMX진수 시퀀스는 원시 XNUMX진수로 변환됩니다. '\#', 여기서 #은 위에 해당하지 않습니다.
\#로 변환됩니다(백슬래시가 유지됨).

C 스타일 모드의 백슬래시 확장은 약간 다릅니다. XNUMX진수 시퀀스 '\###'에는
XNUMX에서 최대 XNUMX개의 XNUMX진수 "#" 접두사를 붙인 숫자 XNUMX이 없으며 원시 옥텟을 생성합니다.
XNUMX진수 시퀀스 '\x#*'는 가능한 한 많은 XNUMX진수 "#"을 탐욕스럽게 먹고
XNUMX진수가 아닌 첫 번째 숫자로 종료합니다. 이들은 유니코드 코드포인트를 다음으로 변환합니다.
UTF-8. 시퀀스 '\c#'(여기서 "#"은 임의의 옥텟)는 Ctrl-#(기본적으로
'\c?'를 의미합니다. DEL이 되고 나머지는 모두 0x1F와 비트 AND됩니다. 마지막으로 '\#', 여기서
#은 위에 해당하지 않으며 #(백슬래시가 잘림)로 변환됩니다.
줄 바꿈.

별칭
별칭에는 일반 명령 별칭과 추적된 별칭의 두 가지 유형이 있습니다. 명령 별칭
일반적으로 길거나 자주 사용되는 명령의 약자로 사용됩니다. 껍질이 팽창한다
첫 번째 단어를 읽을 때 명령 별칭(즉, 값을 별칭 이름으로 대체)
명령의. 확장된 별칭은 더 많은 별칭을 확인하기 위해 다시 처리됩니다. 명령인 경우
별칭이 공백이나 탭으로 끝나면 별칭 확장을 위해 다음 단어도 검사합니다. 그만큼
별칭이 아닌 단어가 발견되면 별칭 확장 프로세스가 중지됩니다.
발견되거나 현재 확장 중인 별칭 단어가 발견된 경우. 별칭은
특히 대화형 기능: 스크립트와
어떤 경우에는 렉싱 중에 별칭이 확장되므로 별칭을 사용해야 합니다.
정의에서 명령 트리를 분리합니다. 그렇지 않으면 별칭을 찾을 수 없습니다.
눈에 띄게, 명령 목록(세미콜론으로 구분, 명령 대체에서도 새 줄로 구분됨)
하나의 동일한 구문 분석 트리일 수 있습니다.

다음 명령 별칭은 셸에서 자동으로 정의됩니다.

autoload='\typeset -fu'
기능='\typeset -f'
hash='\builtin 별칭 -t'
히스토리='\builtin fc -l'
정수='\typeset -i'
로컬='\typeset'
로그인='\exec 로그인'
nameref='\typeset -n'
nohup='노홉'
r='\builtin fc -e -'
type='\builtin whence -v'

추적된 별칭을 사용하면 쉘이 특정 명령을 찾은 위치를 기억할 수 있습니다. 첫번째
셸이 추적된 별칭으로 표시된 명령에 대한 경로 검색을 수행할 때
명령의 전체 경로. 다음에 명령이 실행될 때 쉘은 다음을 확인합니다.
저장된 경로가 여전히 유효한지 확인하고 유효한 경우 경로 검색을 반복하지 않습니다.
추적된 별칭은 다음을 사용하여 나열하고 생성할 수 있습니다. 별명 -t. PATH 변경에 유의하십시오.
매개변수는 추적된 모든 별칭에 대해 저장된 경로를 지웁니다. 만약 트랙올 옵션이 설정됨
(즉 세트 -o 트랙올 or 세트 -h), 쉘은 모든 명령을 추적합니다. 이 옵션이 설정됨
비대화형 쉘의 경우 자동으로. 대화형 셸의 경우 다음만
명령이 자동으로 추적됩니다. 방법(1) cc(1) chmod를(1) cp(1) 데이터(1) ed(1)
이맥스(1) GREP(1) ls(1) 확인(1) mv(1) pr(1) rm(1) SED(1) sh(1) vi(1) 및 누구(1).

치환
단순 명령을 실행할 때 쉘이 수행하는 첫 번째 단계는 대체를 수행하는 것입니다.
명령의 말. 매개변수, 명령 및 대체의 세 가지 유형이 있습니다.
산수. 다음 섹션에서 자세히 설명하는 매개변수 대체
$ 형식을 취하십시오name 또는 ${...}; 명령 대체는 $( 형식을 취합니다.명령) 또는
(더 이상 사용되지 않음) `명령` 또는 (현재 환경에서 실행) ${ 명령;} 및 스트립
후행 개행; 그리고 산술 치환은 $((표현)). 구문 분석
현재 환경 명령 대체는 여는 부분 뒤에 공백, 탭 또는 줄 바꿈이 필요합니다.
중괄호와 닫는 중괄호가 키워드로 인식되도록 합니다(예: 개행 문자가 앞에 옵니다).
또는 세미콜론). funsubs(함수 대체)라고도 하며 다음과 같이 동작합니다.
그 기능 지방의return 일, 그리고 그 안에서 출구 상위 쉘을 종료합니다. 껍데기
옵션이 공유됩니다.

대체의 또 다른 변형은 valsubs(값 대체) ${|명령;} 어떤
또한 funsubs와 같이 현재 환경에서 실행되지만 부모와 I/O를 공유합니다.
대신, 초기에 비어 있는 표현식 로컬 변수 REPLY가 무엇이든 평가합니다.
이내로 설정 명령s.

큰따옴표 밖에 대체가 나타나면 대체 결과는 다음과 같습니다.
일반적으로 IFS의 현재 값에 따라 단어 또는 필드 분할이 적용됩니다.
매개변수. IFS 매개변수는 문자열을 분해하는 데 사용되는 옥텟 목록을 지정합니다.
여러 단어로; IFS에 나타나는 세트 스페이스, 탭 및 개행의 모든 ​​옥텟
옥텟은 "IFS 공백"이라고 합니다. 하나 이상의 IFS 공백 옥텟 시퀀스
XNUMX개 또는 XNUMX개의 비IFS 공백 옥텟과 조합하여 필드를 구분합니다. 특별한 경우로,
선행 및 후행 IFS 공백이 제거됩니다(예: 선행 또는 후행 빈 필드는
그것에 의해 생성됨); 선행 또는 후행 비IFS 공백은 빈 필드를 생성합니다.

예: IFS가 "로 설정된 경우 :”, VAR은 다음과 같이 설정됩니다.
“ ㅏ : B::D”, $VAR를 대체하면 다음과 같은 XNUMX개의 필드가 생성됩니다.
'B', ''(빈 필드) 및 'D'. IFS 매개변수가 빈 값으로 설정된 경우
문자열, 필드 분할이 수행되지 않습니다. 설정되지 않은 경우 스페이스, 탭 및
개행이 사용됩니다.

또한 필드 분할은 다음의 즉각적인 결과에만 적용됩니다.
치환. 이전 예를 사용하여 $VAR:E를 대체하면
필드: 'A', 'B', '' 및 'D:E', 'A', 'B', '', 'D' 및 'E'가 아님. 이 동작은 POSIX
준수하지만 필드 분할을 수행하는 다른 일부 셸 구현과 호환되지 않음
대체가 포함된 단어에서 IFS를 일반 공백 구분 기호로 사용합니다.

대체 결과는 달리 명시되지 않는 한 중괄호 확장의 대상입니다.
및 파일 이름 확장(아래 관련 섹션 참조).

명령 대체는 다음과 같은 지정된 명령에 의해 생성된 출력으로 대체됩니다.
서브쉘에서 실행 $(명령) 및 ${|명령;} 및 ${ 명령;} 대체, 정상
인용 규칙은 다음과 같은 경우에 사용됩니다. 명령 구문 분석됩니다. 그러나 더 이상 사용되지 않는 `명령` 형식,
'\' 다음에 '$', '`' 또는 '\' 중 하나가 제거됩니다(대체가 일부일 때 '"'와 같이).
큰따옴표 문자열); 백슬래시 '\' 다음에 오는 다른 문자는 변경되지 않습니다.
명령 대체의 특수한 경우로 다음 형식의 명령파일 로 해석된다
의 내용을 대체하는 것을 의미합니다. 파일. 그 주 $( 같은 효과가 있습니다 $(고양이 푸).

일부 쉘은 명령 대체를 위해 재귀 구문 분석기를 사용하지 않으므로
특정 구조에 대한 실패; 휴대할 수 있도록 해결 방법으로 'x=$(cat) <<"EOF"'(또는
줄 바꿈 유지 'x=<<"EOF"' 확장명) 대신 단순히 문자열을 후루룩 소리내어 읽습니다. IEEE 표준 1003.1
(“POSIX.1”)은 'x=$(case $foo in (bar) echo $bar 형식의 case 문을 사용할 것을 권장합니다.
;; (*) 에코 $baz ;; esac)' 대신 작동하지만 이에 대한 예제로 제공되지는 않습니다.
휴대성 문제.

x=$(bar의 경우 $foo) echo $bar ;; *) 에코 $baz ;; 에삭)
# 위의 구문은 이전 쉘에서 구문 분석에 실패했습니다. 아래는 해결 방법입니다
x=$(평가 $(고양이)) <<"EOF"
case $foo in bar) echo $bar ;; *) 에코 $baz ;; 에삭
EOF

산술 대체는 지정된 표현식의 값으로 대체됩니다. 을 위한
예를 들어 명령 인쇄 $((2+3*4)) 14를 표시합니다. 참조 산수 표현 A에 대한
표현에 대한 설명.

파라미터
매개변수는 쉘 변수입니다. 값을 할당할 수 있고 해당 값에 액세스할 수 있습니다.
매개변수 대체를 사용합니다. 매개변수 이름은 특수 단일
아래에 설명된 구두점 또는 숫자 문자 매개변수 또는 문자 뒤에 XNUMX 또는
더 많은 문자 또는 숫자('_'는 문자로 계산). 후자의 형식은 배열로 처리할 수 있습니다.
형식의 배열 인덱스를 추가하여 [특급] 어디 특급 산술식이다.
배열 인덱스 mksh 0에서 4294967295까지의 범위로 제한됩니다. 그건,
이들은 32비트 부호 없는 정수입니다.

매개변수 대체는 $ 형식을 사용합니다.name, ${name} 또는 ${name[특급]} 어디 name 하는
매개변수 이름. 모든 배열 요소를 ${로 대체name[*]} 및 ${name[@]} 작품
위치 매개변수의 경우 $* 및 $@와 동일합니다. 대체가 수행되는 경우
매개변수(또는 배열 매개변수 요소)가 설정되지 않은 경우 null 문자열로 대체됩니다.
그렇지 않으면 명사 옵션 (세트 -o 명사 or 세트 -u)가 설정되면 오류가 발생합니다.

여러 가지 방법으로 매개변수에 값을 할당할 수 있습니다. 첫째, 쉘은 암시적으로 설정합니다.
'#', 'PWD' 및 '$'와 같은 일부 매개변수; 이것은 특별한 단일 문자를 사용할 수 있는 유일한 방법입니다.
매개변수가 설정됩니다. 둘째, 다음 위치에 있는 셸의 환경에서 매개변수를 가져옵니다.
시동. 셋째, 명령줄에서 매개변수에 값을 할당할 수 있습니다. 예를 들면 다음과 같습니다. FOO=바
매개변수 "FOO"를 "bar"로 설정합니다. 여러 매개변수 할당이 단일에 제공될 수 있습니다.
명령줄 뒤에 간단한 명령이 올 수 있습니다. 이 경우 할당은 다음과 같습니다.
명령이 지속되는 동안에만 유효합니다(이러한 할당도 내보내집니다. 참조).
이에 대한 의미는 아래 참조). 매개변수 이름과 '='는 모두
쉘이 매개변수 지정을 인식하도록 따옴표가 없습니다. 구조 FOO+=바즈 또한
인식; 이전 값과 새 값이 즉시 연결됩니다. 네 번째 설정 방법
매개변수는 수출, 글로벌, 읽기 전용조판 명령; 그들의 참조
의 설명 명령 실행 부분. 다섯 번째, for 고르다 루프 설정 매개변수
뿐만 아니라 getopts, 읽기세트 -A 명령. 마지막으로 매개변수를 할당할 수 있습니다.
산술식 내에서 대입 연산자를 사용하는 값(참조 산수 표현
아래) 또는 ${name=가치} 매개변수 대체 형식(아래 참조).

내보내기 속성이 있는 매개변수( 수출 or 조판 -x 명령 또는
간단한 명령이 뒤따르는 매개변수 할당)이 환경에 배치됩니다(참조
(7)) 다음과 같이 쉘에 의해 실행되는 명령의 name=가치 한 쌍. 매개변수의 순서
명령이 지정되지 않은 환경에 나타납니다. 쉘이 시작되면
환경에서 매개변수와 해당 값을 추출하고 내보내기를 자동으로 설정합니다.
해당 매개변수에 대한 속성입니다.

수정자는 ${name} 매개변수 대체 형식:

${name:-워드}
If name 설정되고 NULL이 아닌 경우 대체됩니다. 그렇지 않으면, 워드 대체됩니다.

${name:+워드}
If name NULL이 아닌 설정, 워드 대체된다; 그렇지 않으면 아무것도 대체되지 않습니다.

${name:=워드}
If name 설정되고 NULL이 아닌 경우 대체됩니다. 그렇지 않으면 할당됩니다. 워드
결과 값 name 대체됩니다.

${name:?워드}
If name 설정되고 NULL이 아닌 경우 대체됩니다. 그렇지 않으면, 워드 에 인쇄되어 있습니다
표준 오류(앞에 name:) 및 오류가 발생합니다(일반적으로 종료를 유발합니다.
쉘 스크립트, 함수 또는 '.'을 사용하는 스크립트 소스 내장). 만약에 워드 is
생략하면 "parameter null or not set" 문자열이 대신 사용됩니다. 현재 버그,
if 워드 null 문자열로 확장되는 변수이며 오류 메시지도
인쇄.

위의 모든 항목에 대해 워드 실제로 인용된 것으로 간주되며 특수 구문 분석
규칙이 적용됩니다. 구문 분석 규칙은 표현식이 큰따옴표인지 여부에 따라 다릅니다. 워드
그런 다음 큰따옴표 자체('"')와 닫는 문자를 제외하고 큰따옴표 규칙을 사용합니다.
백슬래시가 이스케이프된 경우 따옴표 제거가 적용되는 중괄호.

위 수식어에서 ':'은 생략할 수 있으며, 이 경우 조건은 다음에 따라 달라집니다.
name 설정 중입니다(NULL이 아닌 설정과 반대로). 만약에 워드 필요, 매개변수, 명령,
산술 및 물결표 대체가 수행됩니다. 만약에 워드 필요하지 않다, 그렇지 않다
평가했다.

다음 형식의 매개변수 대체도 사용할 수 있습니다(만약 name 배열이며,
키가 "0"인 요소는 스칼라 컨텍스트에서 대체됨):

${#name}
다음과 같은 경우 위치 매개변수의 수 name '*', '@'이거나 지정되지 않았습니다. 그렇지 않으면
매개변수 문자열 값의 길이(문자) name.

${#name[*]}
${#name[@]}
배열의 요소 수 name.

${%name}
매개변수 문자열 값의 너비(화면 열) name, 또는 -1인 경우
${name} 제어 문자를 포함합니다.

${!name}
에서 참조하는 변수의 이름 name. 이것은 ~이 될 것이다 name 때를 제외하고 name is
에 의해 생성된 이름 참조(바운드 변수) 이름 참조 명령(별칭입니다.
for 조판 -n).

${!name[*]}
${!name[@]}
배열의 인덱스(키) 이름 name.

${name#무늬}
${name##무늬}
If 무늬 매개변수 값의 시작과 일치 name, 일치하는 텍스트는
교체 결과에서 삭제되었습니다. 단일 '#'은 가장 짧은
일치하며 그 중 두 개가 가장 긴 일치를 가져옵니다. 벡터에 적용할 수 없습니다.
(${*} 또는 ${@} 또는 ${array[*]} 또는 ${array[@]}).

${name%무늬}
${name%%무늬}
${..#..} 대체와 비슷하지만 값의 끝에서 삭제합니다. 수 없습니다
벡터에 적용됩니다.

${name/패턴/문자열}
${name/#패턴/문자열}
${name/%패턴/문자열}
${name//패턴/문자열}
가장 긴 경기 무늬 매개변수 값에서 name 다음으로 대체됩니다.
(만약 삭제 비었다; 이 경우 후행 슬래시('/')는 생략할 수 있습니다.
선행 슬래시 뒤에 '#' 또는 '%'가 있으면 패턴이
각각 값의 시작 또는 끝; 고정되지 않은 빈 무늬아니오
대사; 단일 선행 슬래시 또는 무늬 빈과 일치하는
문자열로 인해 교체가 한 번만 발생합니다. 두 개의 선행 슬래시는 모든
바꿀 값의 일치 항목. 벡터에 적용할 수 없습니다.
비효율적으로 구현되어 느릴 수 있습니다.

${name:게시:}
처음으로 의 캐릭터 name, 위치에서 시작 게시, 대체됩니다. 둘 다
게시 과 : 선택적입니다. 만약에 게시 가 음수이면 끝에서 계산을 시작합니다.
끈; 생략하면 기본값은 0입니다. 생략되거나 그보다 큰 경우
나머지 문자열의 길이는 모두 대체됩니다. 둘 다 게시 are
산술식으로 평가됩니다. 현재, 게시 공백으로 시작해야 합니다.
여는 괄호 또는 인식할 숫자. 벡터에 적용할 수 없습니다.

${name@#}
확장 해시(BAFH 알고리즘 사용) name. 이것도 사용
쉘의 해시 테이블을 위해 내부적으로.

${name@큐}
값이 name
매개변수가 대체됩니다.

참고 무늬 확장 글로빙 패턴(@(...)), 단일('...') 또는 이중이 필요할 수 있습니다.
("...") 따옴표 이스케이프가 아닌 한 -o sh 설정됩니다.

다음 특수 매개변수는 셸에 의해 암시적으로 설정되며 직접 설정할 수 없습니다.
과제 사용:

! 마지막으로 시작된 백그라운드 프로세스의 프로세스 ID입니다. 백그라운드 프로세스가 없는 경우
매개변수가 설정되지 않았습니다.

# 위치 매개변수($1, $2 등)의 수.

$ 쉘의 PID 또는 하위 쉘인 경우 원래 쉘의 PID. 하다 않습니다.
임시 파일 이름을 생성하기 위해 이 메커니즘을 사용하십시오. 보다 mktemp(1) 대신.

- 현재 단일 문자 옵션의 연결( 세트 아래 명령
옵션 목록 참조).

? 실행된 마지막 비동기 명령의 종료 상태입니다. 마지막 명령어라면
신호로 사망 $? 128 + 신호 번호로 설정되지만 최대 255입니다.

0 쉘의 이름은 다음과 같이 결정됩니다. mksh 만약 그렇다면
와 함께 호출 -c 옵션과 인수가 주어졌습니다. 그렇지 않으면 파일 인수, 경우
그것은 공급되었다; 또는 쉘이 호출된 기본 이름(예: argv[0]). $0
또한 현재 스크립트의 이름 또는 현재 함수의 이름으로 설정됩니다.
로 정의된 경우 기능 키워드(예: Korn 쉘 스타일 함수).

1 .. 9 쉘, 함수 또는
'.'을 사용하여 소스 스크립트 내장. 추가 위치 매개변수는 다음과 같습니다.
${를 사용하여 액세스번호}.

* 모든 위치 매개변수(0 제외), 즉 $1, $2, $3, ...
큰따옴표 밖에서 사용하는 경우 매개변수는 별도의 단어입니다(
단어 분할); 큰따옴표 안에 사용되는 경우 매개변수는
IFS 매개변수의 첫 번째 문자(또는 IFS가 NULL인 경우 빈 문자열).

@ 동일 $*, 큰따옴표 안에 사용되지 않는 한 별도의 단어는
각 위치 매개변수에 대해 생성됩니다. 위치 매개변수가 없으면
단어가 생성됩니다. $@ 손실 없이 그대로 인수에 액세스하는 데 사용할 수 있습니다.
NULL 인수 또는 공백이 있는 분할 인수.

다음 매개 변수는 셸에서 설정 및/또는 사용합니다.

_(밑줄) 외부 명령이 쉘에 의해 실행될 때 이 매개변수는
새 프로세스의 환경에서 실행 경로로 설정됩니다.
명령. 대화식 사용에서 이 매개변수는 상위 쉘에서도 다음으로 설정됩니다.
이전 명령의 마지막 단어.

BASHPID 셸 또는 하위 셸의 PID입니다.

CDPATH PATH와 비슷하지만 인수를 해결하는 데 사용됩니다. cd 내장 명령. 메모
CDPATH가 설정되고 '.'가 포함되지 않은 경우 또는 빈 문자열 요소인
현재 디렉터리는 검색되지 않습니다. 또한, cd 내장 명령이 표시됩니다
다음 이외의 검색 경로에서 일치 항목이 발견된 경우 결과 디렉토리
빈 경로.

COLUMNS 터미널 또는 창의 열 수로 설정합니다. 항상 설정, 기본값
에 의해 보고된 값이 아닌 한 80으로 스티(1)은 XNUMX이 아니며 충분히 제정신입니다.
(최소 12x3); LINE과 유사합니다. 이 매개변수는
대화식 라인 편집 모드 및 고르다, 세트 -o죽이기 -l 명령
정보 열의 형식을 지정합니다. 환경에서 가져오기 또는 설정 해제
이 매개변수는 실제 터미널 크기에 대한 바인딩을 제거합니다.
제공된 가치.

ENV 이 매개 변수는 프로필 파일이 실행된 후에 설정되어 있는 것으로 확인되면
확장된 값은 쉘 시작 파일로 사용됩니다. 그것은 일반적으로 기능을 포함
및 별칭 정의.

ERRNO 쉘의 정수 값 에르 노 변하기 쉬운. 마지막 이유를 나타냅니다.
시스템 호출에 실패했습니다. 아직 구현되지 않았습니다.

EXECSHELL 설정되면 이 매개변수는 다음에 사용할 쉘을 포함하는 것으로 간주됩니다.
명령을 실행 집행하다(2) 실행에 실패하고 a로 시작하지 않는
“#!껍질" 순서.

FCEDIT에서 사용하는 편집기 fc 명령(아래 참조).

FPATH PATH와 유사하지만 파일을 찾기 위해 정의되지 않은 함수가 실행될 때 사용됩니다.
기능을 정의합니다. 명령을 사용하여 찾을 수 없는 경우에도 검색됩니다.
길. 보다 기능 자세한 내용은 아래를 참조하세요.

HISTFILE 명령 기록을 저장하는 데 사용되는 파일의 이름입니다. 에 할당되거나 설정되지 않은 경우,
파일이 열리고 기록이 잘린 다음 파일에서 로드됩니다. 후속
새 명령(여러 줄로 구성될 수 있음)이 추가되면 추가됩니다.
성공적으로 컴파일되었습니다. 또한 쉘의 여러 호출은 공유합니다.
HISTFILE 매개변수가 모두 동일한 파일을 가리키는 경우 기록합니다.

주의 사항: HISTFILE이 설정되지 않았거나 비어 있으면 히스토리 파일이 사용되지 않습니다. 이것은
AT&T UNIX와 다른 점 KSH.

HISTSIZE 기록을 위해 일반적으로 저장되는 명령의 수입니다. 기본값은 2047입니다.
이 값을 1000000000과 같이 엄청나게 높은 값으로 설정하지 마십시오. mksh
기록에 충분한 메모리를 할당하지 않으면 시작되지 않습니다.

HOME의 기본 디렉토리 cd 명령 및 값으로 대체
자격이없는 ~ (참조 틸데 확장 아래).

IFS 내부 필드 구분 기호, 대체 중에 사용됨 읽기 명령하다
값을 별개의 인수로 분할합니다. 일반적으로 공백, 탭 및 줄 바꿈으로 설정됩니다.
만나다 치환 자세한 내용은 위를 참조하십시오.

주의 사항: 이 매개변수는 쉘이 있는 경우 환경에서 가져오지 않습니다.
시작되었습니다.

KSHEGID 쉘의 유효 그룹 ID.

KSHGID 쉘의 실제 그룹 ID.

KSHUID 쉘의 실제 사용자 ID.

KSH_VERSION 쉘의 이름과 버전(읽기 전용). 버전 명령도 참조하십시오.
in 이맥스 편집 모드Vi 편집 모드 섹션, 아래.

LINENO 현재 실행 중인 함수 또는 쉘 스크립트의 행 번호
실행.

LINES 터미널 또는 창의 줄 수로 설정합니다. 항상 설정, 기본값:
24. 열을 참조하십시오.

에포크리얼타임
에 의해 반환된 에포크 이후의 시간 gettimeofday(2), XNUMX진수 형식
tv_sec 뒤에 점('.')과 tv_usec 정확히 소수점 XNUMX자리까지 채워짐
자릿수.

OLDPWD 이전 작업 디렉토리. 다음과 같은 경우 설정 해제 cd 성공적으로 변경되지 않았습니다
쉘이 시작된 이후의 디렉토리 또는 쉘이 위치를 모르는 경우.

OPTARG 사용 시 getopts, 구문 분석된 옵션에 대한 인수를 포함합니다.
하나가 필요합니다.

OPTIND 사용할 때 처리할 다음 인수의 인덱스 getopts. 할당 1
이 매개변수에 원인 getopts 인수를 처음부터 처리하려면
다음에 호출됩니다.

PATH 콜론(OS/2에서는 세미콜론)으로 구분된 검색된 디렉토리 목록
'.'을 사용하여 소싱된 명령 및 파일을 찾을 때 명령(아래 참조).
선행 또는 후행 콜론 또는 두 개의 인접한 콜론으로 인한 빈 문자열
콜론은 '.'로 취급됩니다. (현재 디렉토리).

PGRP 쉘의 프로세스 그룹 리더의 프로세스 ID.

PIPESTATUS 오류 수준(종료 상태) 코드를 하나씩 포함하는 배열
파이프라인은 전경에서 실행됩니다.

PPID 셸 부모의 프로세스 ID입니다.

PS1 대화식 쉘의 기본 프롬프트. 매개변수, 명령 및 산술
대체가 수행되고 '!' 현재 명령으로 대체됩니다.
번호(참조 fc 아래 명령). 문자 그대로 '!' 에 의해 프롬프트에 넣을 수 있습니다
배치 '!!' PS1에서.

기본 프롬프트는 루트가 아닌 사용자의 경우 '$'이고 루트의 경우 '#'입니다. 만약에 mksh is
루트에 의해 호출되고 PS1에는 기본값인 '#' 문자가 포함되어 있지 않습니다.
PS1이 환경에 이미 존재하는 경우에도 사용됩니다.

XNUMXD덴탈의 mksh 배포판은 샘플과 함께 제공됩니다. 도트.mkshrc 정교한
하지만 다음과 같은 것을 좋아할 수도 있습니다(참고:
${HOSTNAME:=$(hostname)} 및 root-vs-user 구분 절은 (in
이 예) PS1 할당 시간에 실행되는 반면 $USER 및 $PWD는
이스케이프되어 프롬프트가 표시될 때마다 평가됨):

PS1='${USER:=$(id -un)}'"@${HOSTNAME:=$(호스트 이름)}:\$PWD $(
if (( USER_ID )); 그런 다음 \$를 인쇄하십시오. 그렇지 않으면 인쇄 \#; FI) "

명령줄 편집기는 프롬프트가 얼마나 오래 지속되는지 알아내려고 하기 때문에
(화면 가장자리까지의 거리를 알 수 있도록), 이스케이프 코드는
프롬프트는 일을 엉망으로 만드는 경향이 있습니다. 쉘이 특정 값을 세지 않도록 지시할 수 있습니다.
프롬프트 앞에 문자를 추가하여 시퀀스(예: 이스케이프 코드)
(예: Ctrl-A) 다음에 캐리지 리턴을 입력한 다음 이스케이프를 구분합니다.
이 문자로 코드를 지정합니다. 프롬프트에서 해당 문자의 모든 발생은
인쇄되지 않았습니다. 그건 그렇고, 이 해킹에 대해 저를 비난하지 마십시오. 그것은에서 파생됩니다
실물 ksh88(1), 구분 문자를 인쇄했기 때문에
인쇄되지 않는 문자가 없다면 행운입니다.

백슬래시 및 기타 특수 문자는 쉘에서 해석될 수 있으므로
PS1을 설정하려면 백슬래시 자체를 이스케이프하거나 큰따옴표를 사용하십시오. 그만큼
후자가 더 실용적입니다. 이것은 더 복잡한 예이며 직접
특수 문자를 입력하십시오(예: ^V emacs 편집 모드에서),
현재 작업 디렉토리를 역방향 비디오로 포함합니다(색상이 작동합니다.
너무), 프롬프트 문자열에서:

x=$(인쇄 \\001)
PS1="$x$(print \\r)$x$(tput so)$x\$PWD$x$(tput se)$x> "

David G. Korn의 강력한 제안으로 인해 mksh 이제
다음 형식:

PS1=$'\1\r\1\e[7m\1$PWD\1\e[0m\1> '

PS2 보조 프롬프트 문자열, 기본적으로 '> ', 추가 입력이 필요할 때 사용
명령을 완료하십시오.

PS3 Prompt에서 사용하는 고르다 메뉴 선택을 읽을 때의 명령문. 기본값
이다 '#? '.

PS4 실행 추적 중에 인쇄되는 명령의 접두사로 사용됩니다( 세트
-x 아래 명령). 매개변수, 명령 및 산술 대체는
인쇄되기 전에 수행됩니다. 기본값은 '+'입니다. 당신은 그것을 설정할 수 있습니다
대신 타임스탬프를 포함하려면 '[$EPOCHREALTIME] '으로 변경합니다.

PWD 현재 작업 디렉토리. 셸이 모르는 경우 설정되지 않거나 NULL일 수 있습니다.
곳은.

RANDOM RANDOM이 참조될 때마다 0에서 32767 사이의 숫자가 할당됩니다.
선형 합동 PRNG에서 먼저.

REPLY에 대한 기본 매개변수 읽기 이름이 지정되지 않은 경우 명령. 또한 사용
고르다 표준 입력에서 읽은 값을 저장하는 루프.

SECONDS 쉘이 시작된 이후 초 수 또는 매개변수가
할당된 이후의 초 수에 정수 값을 할당했습니다.
할당된 값입니다.

TMOUT 대화형 쉘에서 양의 정수로 설정하면 최대
기본 인쇄 후 쉘이 입력을 기다리는 시간(초)
프롬프트(PS1). 시간이 초과되면 셸이 종료됩니다.

TMPDIR 임시 쉘 파일이 생성되는 디렉토리입니다. 이 매개변수가
쓰기 가능한 디렉토리의 절대 경로를 설정하거나 포함하지 않음, 임시
파일은 / TMP.

USER_ID 셸의 유효 사용자 ID입니다.

틸데 확장
매개변수 대체와 병렬로 수행되는 물결표 확장은 단어에서 수행됩니다.
따옴표 없는 '~'로 시작합니다. 물결표 뒤의 문자는 첫 번째 '/'까지입니다.
any는 로그인 이름으로 간주됩니다. 로그인 이름이 비어 있거나 '+' 또는 '-'인 경우
HOME, PWD 또는 OLDPWD 매개변수가 각각 대체됩니다. 그렇지 않으면 암호
파일에서 로그인 이름을 검색하고 물결표 표현식을 사용자 이름으로 대체합니다.
홈 디렉토리. 암호 파일에서 로그인 이름을 찾을 수 없거나 인용 또는
매개변수 대체는 로그인 이름에서 발생하며 대체는 수행되지 않습니다.

매개변수 할당(예: 단순 명령 앞에 오는 것 또는
의 주장 별명, 수출, 글로벌, 읽기 전용조판), 물결표 확장은 다음에 수행됩니다.
할당(즉, 등호 뒤) 또는 인용 부호가 없는 콜론(':') 뒤; 로그인 이름
또한 콜론으로 구분됩니다.

이전에 확장된 로그인 이름의 홈 디렉토리가 캐시되고 재사용됩니다. 그만큼 별명 -d
명령을 사용하여 이 캐시를 나열, 변경 및 추가할 수 있습니다(예: 별명 -d
fac=/usr/local/시설; cd ~팩/빈).

가새 확장 (교대)
중괄호 표현식은 다음 형식을 취합니다.

접두사{str1,...,strN}접미사

로 표현이 확장됩니다. N 각 단어는 의 ​​연결입니다. 접두사, 하위 버전i,
접미사 (예: "a{c,b{X,Y},d}e"는 "ace", "abXe", "abYe" 및 "ade"의 네 단어로 확장됩니다.)
예제에서 언급한 것처럼 중괄호 표현식은 중첩될 수 있으며 결과 단어는
정렬. 중괄호 표현식은 확장이 발생하도록 인용되지 않은 쉼표(',')를 포함해야 합니다(예:
{}{푸} 확장되지 않음). 중괄호 확장은 매개변수 대체 후 수행됩니다.
그리고 파일 이름 생성 전.

입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에 name 패턴
파일 이름 패턴은 인용 부호가 없는 '?', '*', '+', '@' 또는 '!'를 하나 이상 포함하는 단어입니다.
문자 또는 "[..]" 시퀀스. 가새 확장이 수행되면 쉘이 교체됩니다.
패턴과 일치하는 모든 파일의 정렬된 이름이 있는 파일 이름 패턴(없는 경우
파일이 일치하면 단어는 변경되지 않습니다. 패턴 요소의 의미는 다음과 같습니다.

? 단일 문자와 일치합니다.

* 임의의 옥텟 시퀀스와 일치합니다.

[..] 대괄호 안의 모든 옥텟과 일치합니다. 옥텟의 범위는 다음과 같이 지정할 수 있습니다.
두 옥텟을 '-'로 구분합니다(예: "[a0-9]"는 문자 'a' 또는 임의의 숫자와 일치함).
자신을 나타내려면 '-'를 인용하거나 첫 번째 또는 마지막 옥텟을 표시해야 합니다.
옥텟 목록에서. 마찬가지로 ']'는 따옴표로 묶어야 하거나 목록의 첫 번째 옥텟이어야 합니다.
목록의 끝 대신 자신을 나타내는 경우. 또한 '!' 나타나는
목록의 시작 부분에는 특별한 의미가 있으므로(아래 참조)
인용하거나 목록의 뒷부분에 나타나야 합니다.

[!..] [..]와 같지만 대괄호 안에 있지 않은 모든 옥텟과 일치합니다.

*(무늬|...|무늬)
XNUMX개 이상의 지정된 항목과 일치하는 모든 옥텟 문자열과 일치합니다.
패턴. 예: 패턴 *(푸|바) 문자열 “”, “foo”, “bar”,
"푸바푸" 등

+(무늬|...|무늬)
하나 이상의 지정된 항목과 일치하는 모든 옥텟 문자열과 일치합니다.
패턴. 예: 패턴 +(푸|바) 문자열 "foo", "bar",
"푸바" 등

?(무늬|...|무늬)
빈 문자열 또는 지정된 패턴 중 하나와 일치하는 문자열을 찾습니다.
예: 패턴 ?(푸|바) "", "foo" 및 "bar" 문자열만 일치합니다.

@(무늬|...|무늬)
지정된 패턴 중 하나와 일치하는 문자열을 찾습니다. 예: 패턴
@(푸|바) "foo" 및 "bar" 문자열만 일치합니다.

!(무늬|...|무늬)
지정된 패턴 중 하나와 일치하지 않는 모든 문자열과 일치합니다. 예:
무늬 !(푸|바) "foo" 및 "bar"를 제외한 모든 문자열과 일치합니다. 패턴 !(*)
일치하는 문자열이 없습니다. 패턴 !(?)* 모든 문자열과 일치합니다(생각해보세요).

특히 대안이 있는 복잡한 글로빙은 느리다는 점에 유의하십시오. 별도 사용
비교가 더 빠를 수도 있고 그렇지 않을 수도 있습니다.

참고 mksh (그리고 pdksh) '.'과 일치하지 않습니다. 및 '..', 하지만 AT&T UNIX KSH, 본 sh, 그리고 GNU
세게 때리다 할.

위의 패턴 요소 중 어느 것도 a 시작 부분의 마침표('.')와 일치하지 않습니다.
파일 이름 또는 슬래시('/'), [..] 시퀀스에서 명시적으로 사용되는 경우에도 마찬가지입니다. 또한,
이름 '.' 및 '..'는 패턴 '.*'에 의해서도 일치하지 않습니다.

경우 마크디어 옵션이 설정되면 파일 이름 생성 결과로 생성되는 모든 디렉토리는
후행 '/'로 표시됩니다.

입출력 리디렉션
명령이 실행되면 표준 입력, 표준 출력 및 표준 오류(파일
디스크립터 0, 1, 2)은 일반적으로 쉘에서 상속됩니다. 삼
이에 대한 예외는 표준 입력 및/또는 표준이 있는 파이프라인의 명령입니다.
출력은 파이프라인에 의해 설정된 것으로, 작업 제어가 수행될 때 생성되는 비동기 명령입니다.
표준 입력이 처음에 / dev / null, 명령
다음 리디렉션 중 하나가 지정되었습니다.

>파일 표준 출력은 다음으로 리디렉션됩니다. 파일. 면 파일 존재하지 않고 생성됩니다.
존재하는 경우 일반 파일이며 노클로버 옵션이 설정되어 있으면 오류
발생; 그렇지 않으면 파일이 잘립니다. 이것은 명령을 의미합니다. cmd를
<푸 >푸 열릴 것이다 읽기 위해 열 때 잘라냅니다.
쓰기, 전에 cmd를 실제로 읽을 기회를 얻는다 .

>|파일 과 동일 >, 파일이 잘린 경우를 제외하고 노클로버 옵션이 설정되었습니다.

>>파일 과 동일 >, 다음 경우를 제외하고 파일 존재하는 경우 잘리는 대신 추가됩니다.
또한 파일은 추가 모드로 열리므로 쓰기는 항상
파일(참조 열 수(삼)).

<파일 표준 입력은 다음에서 리디렉션됩니다. 파일, 읽기용으로 열립니다.

<>파일 과 동일 <, 파일이 읽기 및 쓰기용으로 열리는 경우를 제외하고.

<<마커 이러한 종류의 리디렉션이 포함된 명령줄을 읽은 후(
"here document"), 쉘은 명령 소스의 행을
라인이 일치할 때까지 임시 파일 마커 읽습니다. 명령이
실행되면 표준 입력이 임시 파일에서 리디렉션됩니다. 만약에 마커
인용 문자가 포함되어 있지 않으면 임시 파일의 내용이 처리됩니다.
명령이 실행될 때마다 큰따옴표로 묶인 것처럼 매개변수,
명령 및 산술 대체가 백슬래시('\')와 함께 수행됩니다.
'$', '`', '\' 및 '\newline'에 대해서는 이스케이프하지만 '"'에 대해서는 이스케이프하지 않습니다. 여기에 다중인 경우
문서는 동일한 명령줄에서 사용되며 순서대로 저장됩니다.

없는 경우 마커 가 주어지면 here 문서는 다음에서 끝납니다. << 및 대체
수행됩니다. 만약에 마커 단일 "''" 또는 이중 '""'의 집합일 뿐입니다.
사이에 아무 것도 없는 따옴표, here 문서는 다음 빈 줄에서 끝납니다.
교체가 수행되지 않습니다.

<<-마커 과 동일 <<단, 선행 탭이 here 문서의 줄에서 제거된다는 점만 다릅니다.

<<워드 과 동일 <<제외하고 워드 is 여기 문서. 이곳을 여기라고 합니다
끈.

<&fd 표준 입력은 파일 설명자에서 복제됩니다. fd. fd 숫자가 될 수 있으며,
기존 파일 디스크립터의 번호를 나타내는 것; 나타내는 문자 'p'
현재 공동 프로세스의 출력과 관련된 파일 설명자 아니면 그
문자 '-'는 표준 입력이 닫혀 있음을 나타냅니다. 참고 fd is
대부분의 쉘 구현에서 한 자리 숫자로 제한됩니다.

>&fd 과 동일 <&, 작업이 표준 출력에서 ​​수행되는 경우를 제외하고.

&>파일 과 동일 >파일 2> 및 1. 이것은 더 이상 사용되지 않는 (레거시) GNU입니다. 세게 때리다 확장 지원
by mksh 앞의 명시적 fd 번호도 지원합니다. 예를 들면 다음과 같습니다.
3&>파일 와 동일합니다 3>파일 2> 및 3 in mksh 그러나 GNU의 구문 오류 세게 때리다.

&>|파일, &>>파일, &>&fd
과 동일 >|파일, >>파일>&fd, 다음 2> 및 1, 위와 같이. 이것들은 mksh
확장.

위의 리디렉션에서 리디렉션되는 파일 설명자(예: 표준
입력 또는 표준 출력) 리디렉션 앞에 숫자를 붙여 명시적으로 지정할 수 있습니다.
(이식적으로는 한 자리만). 매개변수, 명령 및 산술 대체, 물결표
대체 및 (쉘이 대화식인 경우) 파일 이름 생성이 모두 수행됩니다.
전에, 파일, 마커fd 리디렉션 인수. 그러나 모든 결과는
파일 이름 생성은 단일 파일이 일치하는 경우에만 사용됩니다. 여러 파일이 일치하는 경우
확장된 파일 이름 생성 문자가 있는 단어가 사용됩니다. 제한된
파일을 만들 수 있는 리디렉션은 사용할 수 없습니다.

단순 명령의 경우 리디렉션은 명령의 어느 위치에나 나타날 수 있습니다. 복합 명령의 경우
(if 문 등) 모든 리디렉션은 끝에 나타나야 합니다. 리디렉션이 처리됩니다.
파이프라인이 생성된 후 제공된 순서대로 다음과 같이 인쇄됩니다.
앞에 줄 번호가 추가된 오류:

$ 고양이 /foo/bar 2>&1 >/dev/null | 홍보 -n -t

I/O 재지정에 의해 생성된 파일 설명자는 쉘 전용입니다.

산수 표현
정수 산술식은 다음과 함께 사용할 수 있습니다. 하자 명령, 내부 $((..)) 표현식,
내부 배열 참조(예: name[특급]), 숫자 인수로 test 명령 및
정수 매개변수에 대한 할당 값. 경고: 이 또한 암시적 영향을 미칩니다.
정수로의 변환, 예를 들어 하자 명령. 어머 놀랐다 확인되지 않은 사용자 사용
예를 들어 산술에서 환경으로부터의 입력!

식은 부호 있는 산술을 사용하여 계산되며 mksh_ari_t 유형(부호 있는 32비트
정수), 유일한 '#' 문자로 시작하지 않는 한 mksh_uari_t (a
32비트 부호 없는 정수).

표현식에는 영숫자 매개변수 식별자, 배열 참조 및 정수가 포함될 수 있습니다.
상수이며 다음 C 연산자와 결합할 수 있습니다(다음에 나열 및 그룹화됨).
우선 순위 증가):

단항 연산자:

+ - ! ~ ++ --

이진 연산자 :

,
= += -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
||
&&
|
^
&
==! =
<<=>> =
<<< >>> << >>
+ -
* / %

삼항 연산자:

?: (우선순위가 할당보다 바로 높음)

그룹화 연산자:

()

정수 상수와 식은 정확히 32비트 폭, 부호 있는 또는
unsigned, 정수 오버플로에 자동 랩어라운드를 사용하여 입력합니다. 정수 상수는 다음과 같을 수 있습니다.
표기법을 사용하여 임의의 기준으로 지정됨 기지#번호어디로 기지 십진수입니다
밑을 지정하는 정수 및 번호 지정된 기준의 숫자입니다. 추가적으로,
base-16 정수는 모두 '0x'(대소문자 구분) 접두사를 붙여서 지정할 수 있습니다.
에 대한 숫자 인수를 제외한 산술 표현식의 형식 test 내장 명령.
유일한 숫자 0('XNUMX')을 앞에 붙인 숫자는 다음과 같이 XNUMX진수로 해석되지 않습니다.
그것은 안전하지 않습니다.

스페셜로 mksh 확장자에서 밑이 8인 숫자는 다음 중 하나로 처리됩니다(XNUMX비트
transparent) ASCII 또는 유니코드 코드 포인트(셸의 형식에 따라 다름) utf8 모드 플래그(현재
환경). AT&T 유닉스 ksh93 "1#x" 대신 "'x'" 구문도 지원됩니다. 메모
NUL 바이트(XNUMX의 정수값)는 사용할 수 없습니다. 설정되지 않았거나 비어 있는 매개변수
정수 컨텍스트에서 0으로 평가됩니다. 유니코드 모드에서 원시 옥텟은 범위에 매핑됩니다.
OPTU-80에서와 같이 EF8..EFFF는 PUA에 있고 이 용도로 CSUR에 의해 할당되었습니다. 만약에
ASCII 모드에서 둘 이상의 옥텟 또는 유효한 형식을 형성하지 않는 둘 이상의 옥텟 시퀀스
최소 CESU-8 시퀀스가 ​​전달되면 동작이 정의되지 않습니다(일반적으로 셸이 중단됨).
구문 분석 오류가 있지만 드물게 성공합니다(예: 시퀀스 C2 20). 그래서 당신은
입력이 올바른 형식의 UTF-8이라는 것을 알지 못하는 한 항상 ASCII 모드를 사용해야 합니다.
이 기능을 사용하는 경우 0000..FFFD 범위 읽기 -a.

연산자는 다음과 같이 평가됩니다.

단항 +
결과는 인수입니다(완전성을 위해 포함됨).

단항 -
부정.

! 논리적 NOT; 인수가 1이면 결과는 0이고 그렇지 않으면 XNUMX입니다.

~ 산술(비트 단위) NOT.

++ 증분; 매개변수에 적용해야 합니다(리터럴 또는 기타 표현식이 아님).
매개변수는 1씩 증가합니다. 접두사 연산자로 사용되는 경우 결과는
증가된 매개변수 값입니다. 후위 연산자로 사용될 때,
결과는 매개변수의 원래 값입니다.

-- 비슷하다 ++, 매개변수가 1씩 감소한다는 점을 제외하고.

, 두 산술식을 분리합니다. 왼쪽이 먼저 평가되고,
그럼 오른쪽. 결과는 오른쪽 표현식의 값입니다.
측면.

= 할당; 왼쪽의 변수는 오른쪽의 값으로 설정됩니다.

+= -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
할당 연산자.였다><op>=특급> 와 같다였다>=였다><op><특급>,
연산자 우선 순위특급> 보존. 예를 들어 "var1 *= 5 +
3”은 “var1 = var1 * (5 + 3)”을 지정하는 것과 같습니다.

|| 논리적 OR; 인수가 1이 아닌 경우 결과는 0이고 그렇지 않은 경우 XNUMX입니다. 그만큼
오른쪽 인수는 왼쪽 인수가 XNUMX인 경우에만 평가됩니다.

&& 논리 AND; 두 인수가 모두 1이 아니면 결과는 0이고 그렇지 않으면 XNUMX입니다. 그만큼
오른쪽 인수는 왼쪽 인수가 XNUMX이 아닌 경우에만 평가됩니다.

| 산술(비트 단위) OR.

^ 산술(비트 단위) XOR(배타적 OR).

& 산술(비트 단위) AND.

== 같음; 두 인수가 같으면 결과는 1이고 그렇지 않으면 0입니다.

!= 같지 않음; 결과는 두 인수가 같으면 0이고 그렇지 않으면 1입니다.

< 미만; 결과는 왼쪽 인수가 오른쪽 인수보다 작으면 1이고, 그렇지 않으면 0입니다.
아니.

<= > >=
보다 작거나 같음, 보다 큼, 크거나 같음. 보다 <.

<<< >>>
왼쪽(오른쪽)으로 회전합니다. 결과는 shift와 유사합니다(참조 <<)을 제외하고
한쪽 끝에서 이동된 비트는 XNUMX이 아닌 다른 쪽 끝에서 이동됩니다.
또는 부호 비트.

<< >> 왼쪽으로 이동(오른쪽); 결과는 비트가 왼쪽으로 이동된 왼쪽 인수입니다.
(오른쪽) 오른쪽 인수에 주어진 금액만큼.

+ - * /
더하기, 빼기, 곱하기, 나누기.

% 나머지; 결과는 왼쪽 분할의 대칭 나머지입니다.
권리에 의한 논쟁. "a의 수학적 계수를 얻으려면 모드 b”를 사용하십시오.
공식 "(a % b + b) % b".

<arg1>?arg2>:arg3>
만약arg1>가 XNUMX이 아닌 경우 결과는 다음과 같습니다.arg2>; 그렇지 않으면 결과는arg3>.
non-result 인수는 평가되지 않습니다.

공동 프로세스
공동 프로세스('|&' 연산자로 생성된 파이프라인)는 비동기 프로세스입니다.
쉘이 둘 다 쓸 수 있음(사용 인쇄 -p) 및 읽기 (사용 읽기 -p). 입력
공동 프로세스의 출력은 다음을 사용하여 조작할 수도 있습니다. >&p<&p 리디렉션,
각기. 공동 프로세스가 시작되면 공동 프로세스가 완료될 때까지 다른 프로세스를 시작할 수 없습니다.
프로세스가 종료되거나 코프로세스의 입력이 다음을 사용하여 리디렉션될 때까지 임원 n>&p
리디렉션. 코프로세스의 입력이 이런 방식으로 리디렉션되면 다음 코프로세스는
시작됨은 초기의 출력이 아닌 한 첫 번째 공동 프로세스와 출력을 공유합니다.
co-process는 다음을 사용하여 리디렉션되었습니다. 임원 n<&p 리디렉션.

공동 프로세스에 관한 몇 가지 참고 사항:

· 공동 프로세스의 입력을 닫는 유일한 방법은(따라서 공동 프로세스가 파일 끝을 읽음)
입력을 번호가 매겨진 파일 설명자로 리디렉션한 다음 해당 파일 설명자를 닫습니다.
임원 3>&p; 임원 3>&-

· 공동 프로세스가 공통 출력을 공유하려면 쉘이 쓰기를 유지해야 합니다.
출력 파이프의 일부가 열려 있습니다. 즉, 파일 끝이 감지될 때까지 감지되지 않습니다.
공동 프로세스의 출력을 공유하는 모든 공동 프로세스가 종료되었습니다(모두 종료되면
쉘은 파이프 사본을 닫습니다). 이것은 출력을
번호가 매겨진 파일 설명자(이로 인해 쉘이 복사본을 닫게 됨). 참고
이 동작은 복사본을 닫는 원래 Korn 셸과 약간 다릅니다.
가장 최근에 시작된 co-process가 시작되었을 때 co-process 출력의 쓰기 부분
(모든 공유 공동 프로세스가 종료되는 경우 대신) 종료됩니다.

· 인쇄 -p 신호가 트랩되지 않는 경우 쓰기 중에 SIGPIPE 신호를 무시하거나
무시; 공동 프로세스 입력이 다른 파일에 복제된 경우에도 마찬가지입니다.
디스크립터 및 인쇄 -un 사용.

기능
함수는 Korn 셸을 사용하여 정의됩니다. 기능 함수 이름 구문 또는
본/POSIX 쉘 함수 이름() 구문(둘 사이의 차이점은 아래 참조)
양식). 함수는 .-scripts(즉, '.' 내장을 사용하여 소싱된 스크립트)와 같습니다.
현재 환경에서 실행됩니다. 그러나 .‐scripts와 달리 쉘 인수는
(예: 위치 매개변수 $1, $2 등)는 내부에서 볼 수 없습니다. 껍질이 있을 때
명령의 위치 결정, 기능은 특수 내장 후 검색됩니다.
내장 및 PATH가 검색되기 전에 명령.

기존 기능은 다음을 사용하여 삭제할 수 있습니다. 설정 해제 -f 함수 이름. 함수 목록은
를 사용하여 얻다 조판 +f 함수 정의는 다음을 사용하여 나열할 수 있습니다. 조판 -f.
XNUMXD덴탈의 자동로드 명령(에 대한 별칭입니다. 조판 -부) 정의되지 않은 생성에 사용될 수 있습니다.
함수: 정의되지 않은 함수가 실행될 때 쉘은 다음에 지정된 경로를 검색합니다.
발견된 경우 읽은 함수와 동일한 이름을 가진 파일에 대한 FPATH 매개변수
그리고 실행. 파일을 실행한 후 명명된 함수가 정의된 것으로 확인되면
기능이 실행됩니다. 그렇지 않으면 일반 명령 검색이 계속됩니다(즉, 쉘
일반 내장 명령 테이블 및 PATH 검색). 명령을 찾을 수 없는 경우
PATH를 사용하여 FPATH를 사용하여 함수를 자동 로드하려고 시도합니다(이는 문서화되지 않음
원래 Korn 쉘의 기능).

함수는 "trace"와 "export"의 두 가지 속성을 가질 수 있으며 다음과 같이 설정할 수 있습니다. 조판 -피트
조판 -fx, 각각. 추적된 함수가 실행될 때 셸의 엑스트레이스
기능이 지속되는 동안 옵션이 켜져 있습니다. 함수의 "내보내기" 속성은
현재 사용하지 않습니다. 원래 Korn 셸에서 내보낸 함수는 셸에서 볼 수 있습니다.
실행되는 스크립트.

함수는 현재 쉘 환경에서 실행되므로 매개변수 할당이 이루어집니다.
내부 함수는 함수가 완료된 후 표시됩니다. 이것이 원하는 것이 아닌 경우
효과, 조판 명령은 함수 내에서 로컬 매개변수를 생성하는 데 사용할 수 있습니다. 메모
그 AT&T 유닉스 ksh93 정적 범위 지정 사용(함수당 하나의 전역 범위, 하나의 로컬 범위)
Korn 스타일 함수에서만 지역 변수를 허용하는 반면 mksh 동적 범위 지정 사용
(다양한 지역의 중첩된 범위). 특수 매개변수(예: $$, $!) 수 없습니다
이런 식으로 범위를 지정합니다.

함수의 종료 상태는 함수에서 실행된 마지막 명령의 종료 상태입니다. ㅏ
기능을 사용하여 즉시 종료하도록 할 수 있습니다. return 명령; 이것은 또한 사용될 수 있습니다
종료 상태를 명시적으로 지정합니다.

로 정의된 함수 기능 예약어는 다음에서 다르게 취급됩니다.
로 정의된 함수로부터의 방법 () 표기법:

· $0 매개변수는 함수 이름으로 설정됩니다(Bourne 스타일 함수는 $0
손대지 않은).

· 함수 호출 이전의 매개변수 할당은 쉘 환경에서 유지되지 않습니다.
(Bourne 스타일 함수를 실행하면 할당이 유지됩니다).

· OPTIND는 저장/재설정되며 함수 진입 및 종료 시 복원되므로 getopts 될 수 있습니다
함수 내부와 외부 모두에서 적절하게 사용됨(Bourne 스타일 함수는 OPTIND를 그대로 둡니다.
손대지 않았으므로 사용 getopts 함수 내부는 사용을 방해합니다. getopts 밖에
함수).

· 쉘 옵션(세트 -o) 로컬 범위를 가집니다. 즉, 함수 내부의 변경 사항은 다음에 재설정됩니다.
그것의 출구.

향후에는 다음과 같은 차이점도 추가될 수 있습니다.

· 기능을 실행하는 동안 별도의 트랩/신호 환경이 사용됩니다. 이것
함수 내부에 설정된 트랩이 쉘의 트랩 및 신호에 영향을 미치지 않음을 의미합니다.
셸에서 무시되지 않는(그러나 덫에 걸릴 수 있음)
기능.

· EXIT 트랩은 함수에 설정된 경우 함수가 반환된 후에 실행됩니다.

명령 실행
명령줄 인수, 리디렉션 및 매개변수 할당을 평가한 후
명령 유형이 결정됩니다: 특수 내장 명령, 함수, 일반 내장 또는
실행할 파일의 이름은 PATH 매개변수를 사용하여 찾았습니다. 검사는
위의 순서. 특수 내장 명령은 PATH가 다른 명령과 다릅니다.
매개변수를 사용하지 않고 실행 중 오류가 발생하면
종료할 대화식 쉘 및 명령 앞에 지정되는 매개변수 할당
명령이 완료된 후에도 유지됩니다. 일반 내장 명령은 다음과 같은 점에서만 다릅니다.
PATH 매개변수는 이를 찾는 데 사용되지 않습니다.

원래 KSH 그리고 POSIX는 명령이 특별하거나
규칙적인

POSIX 특수 내장 유틸리티:

., :, 하다, 계속, 평가, 임원, 출구, 수출, 읽기 전용, return, 세트, 변화, 시대, 트랩,
설정 해제

추가 mksh 할당을 유지하는 명령:

내장, 글로벌, , 조판, 기다리다

특별하지 않은 내장:

[, 별명, bg, 바인딩, 방법, cd, 명령, 에코, 그릇된, fc, fg, getopts, 작업, 죽이기, 하자, 인쇄,
pwd, 읽기, 진짜 경로, 이름 변경, , 매달다, test, 참된, 한계, 마스크, 별칭, 어떻게

명령 유형이 결정되면 모든 명령줄 매개변수 할당은
명령이 실행되는 동안 수행되고 내보내집니다.

다음은 특수 및 일반 내장 명령과 내장 유사 예약에 대해 설명합니다.
단어:

. 파일 [아르헨티나 ...]
이것을 "점" 명령이라고 합니다. 에서 명령을 실행합니다. 파일 현재
환경. 파일은 PATH 디렉토리에서 검색됩니다. 인수가 다음과 같은 경우
위치 매개변수를 사용하여 액세스할 수 있습니다. 파일 되는 것입니다
실행. 인수가 지정되지 않은 경우 위치 매개변수는
명령이 사용되는 환경.

: [...]
널 명령. 종료 상태는 XNUMX으로 설정됩니다.

[ 표현 ]
만나다 test.

별명 [-d | -t [-r] | +-x] [-p] [+] [name [=가치] ...]
인수 없이, 별명 모든 별칭을 나열합니다. 값이 없는 이름의 경우
기존 별칭이 나열됩니다. 값이 있는 이름은 별칭을 정의합니다(참조: 별칭
위).

별칭을 나열할 때 두 가지 형식 중 하나가 사용됩니다. 일반적으로 별칭은 다음과 같이 나열됩니다.
name=가치어디로 가치 인용된다. 옵션 앞에 '+' 또는 단독 '+'가 있는 경우
명령줄에만 제공됩니다. name 인쇄됩니다.

XNUMXD덴탈의 -d 옵션을 사용하면 물결표 확장에 사용되는 디렉토리 별칭이 나열됩니다.
또는 설정(참조 틸데 확장 위).

경우 -p 옵션을 사용하면 각 별칭에 "alias "라는 접두사가 붙습니다.

XNUMXD덴탈의 -t 옵션은 추적된 별칭이 나열/설정됨을 나타냅니다(지정된 값
추적된 별칭에 대해서는 명령줄에서 무시됨). 그만큼 -r 옵션은
추적된 모든 별칭이 재설정됩니다.

XNUMXD덴탈의 -x 옵션 세트(+x clears) 별칭의 내보내기 속성 또는 이름이 없는 경우
주어진 경우 내보내기 속성이 있는 별칭을 나열합니다(별칭 내보내기에는
효과).

bg [ ...]
지정된 중지된 작업을 백그라운드에서 다시 시작합니다. 작업이 지정되지 않은 경우 %+
가정됩니다. 보다 제어 자세한 내용은 아래를 참조하세요.

바인딩 [-l]
현재 바인딩이 나열됩니다. 만약 -l 깃발이 주어지고, 바인딩 대신 다음을 나열합니다.
키가 바인딩될 수 있는 기능의 이름. 보다 이맥스 편집 모드 자세한
정보.

바인딩 [-m] =[대용품] ...
바인딩 =[편집 명령] ...
지정된 편집 명령은 주어진 , 다음으로 구성되어야 합니다.
선택적으로 앞에 두 개의 접두사 문자 중 하나가 오는 제어 문자 및
선택적으로 물결표 문자가 이어집니다. 미래의 입력 의 원인이됩니다
즉시 호출되는 편집 명령. 만약 -m 플래그가 주어지면 지정된
입력 나중에 주어진 것으로 즉시 대체됩니다. 대용품
편집 명령을 포함할 수 있지만 다른 매크로는 포함하지 않을 수 있습니다. 물결표 접미사가
주어진 경우 하나 또는 두 개의 접두사와 제어 문자 뒤에 오는 물결표는 무시됩니다.
다른 후행 문자는 나중에 처리됩니다.

제어 문자는 캐럿 표기법을 사용하여 작성할 수 있습니다. 즉 ^X는 Ctrl-X를 나타냅니다.
두 개의 접두사 문자(일반적으로 ESC 및 ^X)만 지원되지만
일부 다중 문자 시퀀스가 ​​지원될 수 있습니다.

다음 기본 바인딩은 화살표 키, 홈, 종료 및 삭제 키를 어떻게 사용하는지 보여줍니다.
BSD wsvt25, xterm-xfree86 또는 GNU 스크린 터미널에서 바인딩됩니다(물론 일부
이스케이프 시퀀스는 이렇게 잘 작동하지 않습니다.):

바인드 '^X'=접두사-2
바인드 '^[['=prefix-2
바인드 '^XA'=업 히스토리
바인드 '^XB'=다운 히스토리
바인드 '^XC'=정방향 문자
바인드 '^XD'=역방향 문자
바인드 '^X1~'=행의 시작
바인드 '^X7~'=행의 시작
바인드 '^XH'=행의 시작
바인드 '^X4~'=줄 끝
바인드 '^X8~'=줄 끝
바인드 '^XF'=줄 끝
바인드 '^X3~'=delete-char-forward

하다 [수평]
끝내기 수평가장 안쪽 for , 고르다, 까지동안 고리. 수평 기본값은 1입니다.

내장 [--] 명령 [아르헨티나 ...]
내장 명령 실행 명령.

방법 [-u] [파일 ...]
파일을 명령줄 순서로 순차적으로 읽고 표준 출력에 씁니다.
경우 파일 단일 대시('-')이거나 부재이며 표준 입력에서 읽습니다. 직접
내장 호출, POSIX -u 옵션은 no-op로 지원됩니다. 쉘에서 호출하는 경우
모든 옵션이 제공되고 외부 방법(1) 빌트인보다 유틸리티가 선호됩니다.

cd [-L] [DIR]
cd -P [-e] [DIR]
chdir [-eLP] [DIR]
작업 디렉토리를 다음으로 설정 DIR. 매개변수 CDPATH가 설정된 경우 다음을 나열합니다.
포함하는 디렉토리의 검색 경로 DIR. NULL 경로는 현재
예배 규칙서. 만약에 DIR 이외의 CDPATH 검색 경로의 모든 구성 요소에서 찾을 수 있습니다.
NULL 경로, 새 작업 디렉토리의 이름이 표준 출력에 기록됩니다.
If DIR 이 없으면 홈 디렉토리 HOME이 사용됩니다. 만약에 DIR '-'는 이전
작업 디렉토리가 사용됩니다(OLDPWD 매개변수 참조).

경우 -L 옵션(논리 경로)이 사용되거나 물리적 옵션이 설정되지 않았습니다(
세트 아래 명령), '..'에 대한 참조 DIR 도착하는 데 사용되는 경로에 상대적입니다.
디렉토리. 만약 -P 옵션(물리적 경로)이 사용되거나 물리적 옵션은
set, '..'은 파일 시스템 디렉토리 트리에 상대적입니다. PWD 및 OLDPWD
매개변수는 현재 및 이전 작업 디렉토리를 반영하도록 업데이트됩니다.
각기. 만약 -e 옵션은 물리적 파일 시스템 순회 및 PWD에 대해 설정됩니다.
설정할 수 없습니다. 종료 코드는 1입니다. 오류가 발생한 경우 1보다 큼, 0
그렇지 않으면.

cd [-eLP] 낡은
chdir [-eLP] 낡은
문자열 대체 됨 낡은 현재 디렉토리 및 쉘
새 디렉토리로 변경을 시도합니다.

명령 [-pVv] cmd를 [아르헨티나 ...]
둘 다 -v ...도 아니다 -V 옵션이 주어지고, cmd를 다음과 같이 정확하게 실행됩니다. 명령 했다
두 가지 예외를 제외하고는 지정되지 않았습니다. 첫째, cmd를 쉘 함수일 수 없습니다. 그리고
둘째, 특수 내장 명령은 특수성을 잃습니다(예: 리디렉션 및
유틸리티 오류로 인해 쉘이 종료되지 않으며 명령 지정이 수행되지 않습니다.
영구적 인).

경우 -p 옵션이 제공되면 현재 값 대신 기본 검색 경로가 사용됩니다.
실제 값은 시스템에 따라 다릅니다.

경우 -v 실행하는 대신 옵션이 제공됩니다. cmd를, 무엇에 대한 정보
실행이 주어집니다(동일하게 수행됩니다. 아르헨티나 ...). 빌트인, 함수 및
키워드, 그 이름은 단순히 인쇄됩니다. 별칭의 경우 이를 정의하는 명령은 다음과 같습니다.
인쇄; PATH 매개변수를 검색하여 찾은 유틸리티의 경우
명령이 인쇄됩니다. 명령이 발견되지 않으면(예: 경로 검색 실패) 아무 것도 검색되지 않습니다.
인쇄 및 명령 XNUMX이 아닌 상태로 종료합니다. 그만큼 -V 옵션은 다음과 같습니다. -v
더 장황하다는 점을 제외하면 옵션입니다.

계속 [수평]
시작 부분으로 이동합니다. 수평가장 안쪽 for , 고르다, 까지동안 고리.
수평 기본값은 1입니다.

에코 [-엔] [아르헨티나 ...]
경고: 이 유틸리티는 이식성이 없습니다. Korn 쉘 내장 사용 인쇄 대신.

인수(공백으로 구분) 뒤에 줄 바꿈을 표준으로 인쇄합니다.
산출. 인수에 백슬래시가 포함된 경우 줄 바꿈이 억제됩니다.
시퀀스 '\c'. 참조 인쇄 다른 백슬래시 시퀀스 목록을 보려면 아래 명령
인식됩니다.

옵션은 BSD 쉘 스크립트와의 호환성을 위해 제공됩니다. 그만큼 -n 선택권
후행 줄 바꿈을 억제합니다. -e 백슬래시 해석을 활성화합니다(no-op, 이후
이것은 일반적으로 수행됩니다) 및 -E 백슬래시 해석을 억제합니다.

경우 POSIX or sh 옵션이 설정되어 있거나 이것은 직접 내장 호출입니다.
인수는 옵션으로 취급되며 정확히 "-n". 백슬래시
통역이 불가능합니다.

평가 명령 ...
인수가 연결되어(둘 사이에 공백 포함) 단일 문자열을 형성합니다.
그러면 셸이 현재 환경에서 구문 분석하고 실행합니다.

임원 [-a argv0] [-c] [명령 [아르헨티나 ...]]
이 명령은 분기 없이 실행되어 셸 프로세스를 대체합니다. 이것은
현재 절대적, 즉 임원 경우에도 절대 반환되지 않습니다. 명령 찾을 수 없습니다. 그만큼
-a 옵션은 다른 argv[0] 값 설정을 허용하고 -c 환경을 청소합니다
_ 변수와 직접 할당을 제외하고 자식 프로세스를 실행하기 전에.

I/O 리디렉션 외에 명령이 주어지지 않으면 I/O 리디렉션은 영구적입니다.
쉘은 교체되지 않습니다. 열려 있는 2보다 큰 모든 파일 설명자
or 멍청이(2) 이러한 방식으로 실행된 다른 명령(예:
쉘에 내장되지 않은 명령). Bourne 쉘은 다릅니다.
여기; 이러한 파일 설명자를 전달합니다.

출구 [지위]
쉘은 지정된 종료 상태로 종료됩니다. 만약에 지위 지정되지 않은 경우 종료
status는 현재 값입니다. $? 매개 변수입니다.

수출 [-p] [매개 변수[=가치]]
명명된 매개변수의 내보내기 속성을 설정합니다. 내보낸 매개변수가 전달됩니다.
명령을 실행할 환경. 값을 지정하면 명명된 매개변수
또한 할당됩니다.

매개변수를 지정하지 않으면 내보내기 속성이 설정된 모든 매개변수가
한 줄에 하나씩 인쇄; 이름 또는 옵션 문자가 없는 '-'가
지정된 이름=값 쌍 또는 -p, 수출 재진입에 적합한 명령.

그릇된 XNUMX이 아닌 상태로 종료되는 명령입니다.

fc [-e 편집자 | -l [-n]] [-r] [먼저 [지난]]
먼저지난 기록에서 명령을 선택합니다. 히스토리로 명령 선택 가능
숫자(음수는 현재, 가장 최근의 행에서 뒤로 이동) 또는 a
해당 문자열로 시작하는 가장 최근 명령을 지정하는 문자열. 그만큼 -l 선택권
표준 출력에 명령을 나열하고 -n 기본 명령 번호를 금지합니다.
XNUMXD덴탈의 -r 옵션은 목록의 순서를 반대로 합니다. 없이 -l, 선택한 명령은
로 지정된 편집기에 의해 편집됨 -e 옵션 또는 그렇지 않은 경우 -e 지정되고,
FCEDIT 매개변수로 지정된 편집기(이 매개변수가 설정되지 않은 경우 /빈/에드 is
used), 쉘에 의해 실행됩니다.

fc -e - | -s [-g] [낡은= ] [접두사]
수행 후 선택한 명령(기본적으로 이전 명령)을 다시 실행합니다.
선택적 대체 낡은 . 면 -g 가 지정되면 모든 발생
낡은 대체된다 . 그 의미 -e --s 동일: 다시 실행
편집기를 호출하지 않고 명령을 선택했습니다. 이 명령은 일반적으로
미리 정의된: 별명 r='fc -e -'

fg [ ...]
포그라운드에서 지정된 작업을 재개합니다. 작업이 지정되지 않은 경우 %+ is
추정. 보다 제어 자세한 내용은 아래를 참조하세요.

getopts 옵트스트링 name [아르헨티나 ...]
지정된 인수(또는 위치 매개변수,
인수가 제공되지 않은 경우) 법적 옵션을 확인합니다. 옵트스트링 포함
옵션 문자 getopts 인식하는 것입니다. 문자 다음에 콜론이 오는 경우
옵션에는 인수가 있어야 합니다. 인수를 사용하지 않는 옵션은 다음과 같을 수 있습니다.
단일 인수로 그룹화됩니다. 옵션이 인수와 옵션을 취하는 경우
문자는 발견된 인수의 마지막 문자가 아니며 나머지는
인수는 옵션의 인수로 간주됩니다. 그렇지 않으면 다음 인수는
옵션의 인수.

매번 getopts 호출되면 쉘 매개변수에 다음 옵션을 배치합니다. name
다음 호출에서 처리할 인수의 인덱스 getopts FBI 증오 범죄 보고서
쉘 매개변수 OPTIND. 옵션이 '+'와 함께 도입된 경우 옵션이 배치됩니다.
in name 앞에 '+'가 붙습니다. 옵션에 인수가 필요한 경우 getopts 장소
쉘 매개변수 OPTARG에 있습니다.

잘못된 옵션이나 누락된 옵션 인수가 발견되면 물음표
또는 콜론이 name (잘못된 옵션 또는 누락된 인수를 나타냄,
각각) 및 OPTARG는 문제를 일으킨 옵션 문자로 설정됩니다.
또한, 경우 옵트스트링 콜론으로 시작하지 않으면 물음표가
name, OPTARG가 설정되지 않고 표준 오류에 오류 메시지가 인쇄됩니다.

옵션의 끝을 만났을 때, getopts XNUMX이 아닌 종료로 종료
상태. 옵션은 시작하지 않는 첫 번째(옵션 인수가 아닌) 인수에서 끝납니다.
'-' 또는 '--' 인수가 있는 경우.

옵션 구문 분석은 OPTIND를 1로 설정하여 재설정할 수 있습니다(이는 자동으로 수행됨).
쉘 또는 쉘 프로시저가 호출될 때마다).

경고: 쉘 매개변수 OPTIND의 값을 1 이외의 값으로 변경하거나
OPTIND를 재설정하지 않고 다른 인수 집합을 구문 분석하면 예기치 않은 오류가 발생할 수 있습니다.
결과.

글로벌 ...
만나다 조판.

해시 [-r] [name ...]
인수가 없으면 해시된 실행 가능한 명령 경로 이름이 나열됩니다. 그만큼 -r 선택권
모든 해시 명령이 해시 테이블에서 제거됩니다. 각 name 검색된다
마치 명령 이름이고 실행 파일인 경우 해시 테이블에 추가된 것처럼
명령.

작업 [-lnp] [ ...]
지정된 작업에 대한 정보를 표시합니다. 작업을 지정하지 않으면 모든 작업
표시됩니다. 그만큼 -n 옵션을 사용하면 다음 작업에 대해서만 정보가 표시됩니다.
마지막 알림 이후 상태가 변경되었습니다. 만약 -l 옵션이 사용되며,
작업에 있는 각 프로세스의 프로세스 ID도 나열됩니다. 그만큼 -p 옵션은
인쇄할 각 작업의 프로세스 그룹입니다. 보다 제어 형식은 아래
그리고 표시된 작업.

죽이기 [-s 시그네임 | -Signum | -시그네임] { | PID | pgrp } ...
지정된 작업, 프로세스 ID 또는 프로세스 그룹에 지정된 신호를 보냅니다. 만약에
신호가 지정되지 않으면 TERM 신호가 전송됩니다. 작업이 지정된 경우 신호
작업의 프로세스 그룹으로 전송됩니다. 보다 제어 형식은 아래 .

죽이기 -l [종료 상태 ...]
에 해당하는 신호 이름을 인쇄하십시오. 종료 상태. 인수가 지정되지 않은 경우
모든 신호 목록, 신호 번호 및 간단한 설명이 인쇄됩니다.

하자 [표현 ...]
각 표현식이 평가됩니다(참조 산수 표현 위에). 모든 식의 경우
성공적으로 평가되고 마지막 표현식이 평가된 경우 종료 상태는 0(1)입니다.
XNUMX이 아닌(제로). 구문 분석 또는 평가 중에 오류가 발생하는 경우
종료 상태는 1보다 큽니다.
인용, (( 특급 )) { let '에 대한 구문 설탕입니다.특급'; }.

허락하다] 내부적으로 사용되는 별칭 하자.

mknod [-m 모드] name b|c 주요한 미성년자
mknod [-m 모드] name p
장치 특수 파일을 만듭니다. 파일 형식은 다음과 같을 수 있습니다. b (블록형 장치), c
(문자형 장치) 또는 p (명명된 파이프, FIFO). 생성된 파일은 수정될 수 있습니다.
그것에 따르면 모드 (를 통해 -m 옵션), 주요한 (주요 장치 번호) 및 미성년자
(부 장치 번호). 이것은 일반적으로 다음의 일부가 아닙니다. mksh; 그러나 유통업체는
이것을 스피드 핵으로 내장으로 추가했습니다.

인쇄 [-nprsu[n] | -R [- 엔]] [논의 ...]
인쇄 공백으로 구분되고 종료되는 표준 출력에 인수를 인쇄합니다.
줄 바꿈으로. 그만큼 -n 옵션은 개행을 억제합니다. 기본적으로 특정 C 이스케이프
번역됩니다. 여기에는 에서 언급된 것들이 포함됩니다. 백 슬래시 확장 위에서도
'\c'로, 이는 다음을 사용하는 것과 동일합니다. -n 옵션. 백슬래시 확장은
로 억제 -r 선택권. 그만큼 -s 옵션은 대신 히스토리 파일에 인쇄합니다.
표준 출력; 그만큼 -u 옵션은 파일 설명자로 인쇄합니다. n (n 다음과 같은 경우 기본값은 1입니다.
생략); 그리고 -p 옵션은 공동 프로세스로 인쇄됩니다(참조 공동 프로세스 위).

XNUMXD덴탈의 -R 옵션은 어느 정도 BSD를 에뮬레이션하는 데 사용됩니다. 에코(1) 하는 명령
다음이 아니면 '\' 시퀀스를 처리하지 않습니다. -e 옵션이 주어집니다. 위와 같이, -n 선택권
후행 개행을 억제합니다.

printf 체재 [인수 ...]
형식화된 출력. 와 대략 동일 printf(1), 사용을 제외한 유틸리티
같은 백 슬래시 확장 및 I/O 코드이며 부동 소수점을 처리하지 않습니다.
나머지 mksh. 내장 유틸리티보다 외부 유틸리티가 선호됩니다. 이것은 아니다
일반적으로 mksh; 그러나 배포자는 이것을 기본으로 추가했을 수 있습니다.
속도 해킹. 새 코드에서 사용하지 마십시오.

pwd [-LP]
현재 작업 디렉토리를 인쇄합니다. 만약 -L 옵션이 사용되거나 물리적
옵션이 설정되지 않았습니다( 세트 아래 명령) 논리 경로가 인쇄됩니다(예:
에 사용되는 경로 cd 현재 디렉토리로). 만약 -P 옵션(물리적 경로) 사용
또는 물리적 옵션이 설정되면 파일 시스템에서 경로가 결정됩니다(by
다음 '..' 디렉토리에서 루트 디렉토리까지)이 인쇄됩니다.

읽기 [-A | -a] [-d x] [-N z | -n z] [-p | -u[n]] [-t n] [-rs] [p ...]
입력 라인을 읽고 IFS 매개변수를 사용하여 입력을 필드로 분리합니다(참조:
치환 위) 각 필드를 지정된 매개변수에 할당합니다. p. 아니라면
매개변수가 지정되면 REPLY 매개변수가 결과를 저장하는 데 사용됩니다. 와 더불어
-A-a 옵션이 없으면 매개변수가 없거나 하나만 허용됩니다. 더 있으면
필드보다 매개변수, 추가 매개변수는 빈 문자열 또는 0으로 설정됩니다. 만약에
매개변수보다 더 많은 필드가 있는 경우 마지막 매개변수에 나머지
필드(단어 구분 기호 포함).

옵션은 다음과 같습니다

-A 결과를 매개변수에 저장 p (또는 REPLY)를 단어 배열로 사용합니다.

-a 단어 분할 없이 결과를 매개변수에 저장 p (또는 REPLY)로
문자 배열( utf8 모드 옵션이 제정되고,
그렇지 않으면 옥텟); 코드 포인트는 기본적으로 십진수로 인코딩됩니다.

-d x 의 첫 번째 바이트 사용 x, ASCII 개행 문자 대신 비어 있으면 NUL
입력 줄 구분 기호로.

-N z 줄 끝까지 읽는 대신 정확하게 읽으십시오. z 바이트. EOF 또는
시간 초과가 발생하면 부분 읽기가 종료 상태 1로 반환됩니다.

-n z 줄 끝까지 읽는 대신 최대 z 바이트이지만 즉시 반환
예를 들어 느린 터미널 장치에서 또는 EOF 또는 시간 초과인 경우 모든 바이트를 읽습니다.
발생합니다.

-p 현재 활성 공동 프로세스에서 읽습니다. 참조 공동 프로세스 자세한 내용은 위
이에.

-u[n] 파일 설명자에서 읽기 n (기본값은 0, 즉 표준 입력). 그만큼
인수는 옵션 문자 바로 뒤에 와야 합니다.

-t n 다음 시간 이후 읽기 중단 n 초 (양의 십진수 값으로 지정
선택적 분수 부분). 종료 상태 읽기 시간 초과인 경우 1
발생했지만 부분 읽기는 여전히 반환될 수 있습니다.

-r 일반적으로 ASCII 백슬래시 문자는
다음 문자는 입력에서 제거됩니다. 읽기 때 멈추지 않는다
백 슬래시-줄 바꿈 시퀀스가 ​​발생하고 해당 줄 바꿈을 저장하지 않습니다
결과. 이 옵션은 백슬래시가 없는 원시 모드를 활성화합니다.
처리됨.

-s 입력 라인은 히스토리에 저장됩니다.

입력이 터미널이면 둘 다 -N-n 옵션은 원시 모드로 설정합니다. 그들
-1이 다음과 같이 전달되면 전체 파일을 읽습니다. z 논의.

첫 번째 매개변수에는 물음표와 문자열이 추가될 수 있습니다.
문자열이 프롬프트로 사용되는 경우(입력이 완료되기 전에 표준 오류로 인쇄됨)
읽기) 입력이 청각 장애(4) (예: 읽기 nfoo?'숫자 of 푸스: ').

입력이 읽히지 않거나 시간 초과가 발생한 경우 읽기 XNUMX이 아닌 상태로 종료됩니다.

또 다른 유용한 트릭: If 읽기 다음과 같은 루프에서 실행됩니다. 동안 읽기 푸; do ...;
그러면 선행 공백이 제거되고(IFS) 백슬래시가 처리됩니다. 너
사용하고 싶을 수도 있습니다 동안 IFS= 읽기 -r 푸; do ...; 깨끗한 I/O를 위해. 비슷하게,
사용할 때 -a 옵션, 사용 -r 옵션은 신중할 수 있습니다. 동일하게 적용됩니다
용 :

찾다 . -유형 f -print0 |& \
while IFS= 읽기 -d '' -pr 파일 이름; 하다
인쇄 -r -- "발견 <${filename#./}>"


내부 루프는 서브쉘에서 실행되며 변수 변경은 불가능합니다.
파이프라인에서 실행되는 경우 전파됨:

바 | 바즈 | foo를 읽는 동안; 하다 ...; 완료

대신 공동 프로세스를 사용하십시오.

바 | 바즈 |&
-p foo를 읽는 동안; 하다 ...; 완료
간부 3>&p; 간부 3>&-

읽기 전용 [-p] [매개 변수 [=가치] ...]
명명된 매개변수의 읽기 전용 속성을 설정합니다. 값이 주어지면,
매개변수는 속성을 설정하기 전에 매개변수로 설정됩니다. 매개변수가 만들어지면
읽기 전용이며 설정을 해제할 수 없으며 값을 변경할 수 없습니다.

매개변수를 지정하지 않으면 모든 매개변수의 이름은 읽기 전용
속성은 한 줄에 하나씩 인쇄됩니다. -p 옵션이 사용되며, 이 경우
읽기 전용 해당 값을 포함하여 모든 읽기 전용 매개변수를 정의하는 명령은 다음과 같습니다.
인쇄.

진짜 경로 [--] name
다음에 해당하는 확인된 절대 경로 이름을 인쇄합니다. name. 면 name 로 끝남
슬래시('/'), 존재 여부와 디렉토리 여부도 확인합니다.
그렇지 않으면, 진짜 경로 경로 이름이 존재하거나 만들 수 있는 경우 0을 반환합니다.
즉시, 즉 마지막 구성요소를 제외한 모든 것이 존재하며 디렉토리입니다.

이름 변경 [--]
파일 이름 바꾸기 . 둘 다 완전한 경로 이름이어야 하며 동일한 장치에 있어야 합니다.
이 내장은 다음과 같은 비상 상황을 위한 것입니다. /bin/mv 사용할 수 없게 되며,
직접 전화 이름 변경(2).

return [지위]
함수에서 반환 또는 . 스크립트, 종료 상태 포함 지위. 아니라면 지위 주어진다,
마지막으로 실행된 명령의 종료 상태가 사용됩니다. 함수 외부에서 사용하는 경우
or . 스크립트와 동일한 효과를 가집니다. 출구. 그 주 mksh 프로필과
ENV 파일 . 원래 Korn 셸은 프로필만 다음과 같이 취급합니다. .
스크립트.

세트 [+-abCefhiklmnprsUuvXx] [+-오 선택권] [+-A name] [--] [아르헨티나 ...]
XNUMXD덴탈의 세트 명령을 사용하여 설정할 수 있습니다(-) 또는 지우기(+) 쉘 옵션, 위치 설정
매개변수를 선택하거나 배열 매개변수를 설정합니다. 옵션은 다음을 사용하여 변경할 수 있습니다. +-오 선택권
구문, 여기서 선택권 옵션의 긴 이름이거나 +-편지 통사론,
어디에 편지 옵션의 단일 문자 이름(모든 옵션에 단일 문자가 있는 것은 아님)
이름). 다음 표에는 옵션 문자(있는 경우)와 긴 이름이 모두 나열되어 있습니다.
옵션의 기능에 대한 설명과 함께:

-A name
배열 매개변수의 요소를 설정합니다. name아르헨티나 ... If -A 이 사용되면
어레이가 먼저 재설정(즉, 비워짐)됩니다. 만약에 +A 가 사용되면 처음 N개의 요소가 설정됩니다.
(여기서 N은 인수의 수입니다); 나머지는 그대로 둡니다.

명령의 대체 구문 세트 -A -- a b c 호환되는
GNU 세게 때리다 AT&T UNIX에서도 지원 ksh93 입니다 푸=(a b 씨); 푸+=(디 e)

-a | -o 수출
모든 새 매개변수는 내보내기 속성으로 생성됩니다.

-b | -o 통보
작업 알림 메시지를 인쇄하기 직전이 아니라 비동기식으로 인쇄합니다.
즉각적인. 작업 제어가 활성화된 경우에만 사용됩니다(-m).

-C | -o 노클로버
방지 > 리디렉션이 기존 파일을 덮어쓰지 않도록 합니다. 대신 >| 사용해야합니다
덮어쓰기를 강제합니다. 이것은 생성에 사용하기에 안전하지 않습니다.
리디렉션을 허용하는 확인에서 TOCTOU로 인한 임시 파일 또는 잠금 파일
~에 출력 / dev / null 또는 다른 장치 파일에서도 노클로버 방법.

-e | -o 실수
오류가 발생하거나 명령이 실행되는 즉시 종료(ERR 트랩 실행 후)
실패합니다(즉, XNUMX이 아닌 상태로 종료). 명령에는 적용되지 않습니다.
종료 상태는 다음과 같은 셸 구성에 의해 명시적으로 테스트됩니다. if, 까지,
동안! 진술. 을 위한 && 또는 ||, 마지막 명령의 상태만
테스트.

-f | -o 노글롭
파일 이름 패턴을 확장하지 마십시오.

-h | -o 트랙올
실행된 모든 명령에 대해 추적된 별칭을 생성합니다(참조: 별칭 위에). 사용
비대화형 쉘의 경우 기본적으로.

-i | -o 대화형
쉘은 대화식 쉘입니다. 이 옵션은 쉘이
호출됩니다. 이것이 무엇을 의미하는지에 대한 설명은 위를 참조하십시오.

-k | -o 키워드는
매개변수 지정은 명령의 어느 곳에서나 인식됩니다.

-l | -o 로그인
쉘은 로그인 쉘입니다. 이 옵션은 쉘이 다음과 같은 경우에만 사용할 수 있습니다.
호출. 이것이 무엇을 의미하는지에 대한 설명은 위를 참조하십시오.

-m | -o 모니터
작업 제어를 활성화합니다(대화식 쉘의 기본값).

-n | -o noexec
어떤 명령도 실행하지 마십시오. 스크립트의 구문을 확인하는 데 유용합니다(무시
대화형인 경우).

-p | -o 특권
쉘은 특권 쉘입니다. 쉘이 다음과 같은 경우 자동으로 설정됩니다.
실제 UID 또는 GID가 유효 UID(EUID) 또는 GID와 일치하지 않습니다.
(EGID), 각각. 이것이 무엇을 의미하는지에 대한 설명은 위를 참조하십시오.

-r | -o 한정된
쉘은 제한된 쉘입니다. 이 옵션은 쉘이 다음과 같은 경우에만 사용할 수 있습니다.
호출. 이것이 무엇을 의미하는지에 대한 설명은 위를 참조하십시오.

-s | -o 표준
쉘이 호출될 때 사용되면 표준 입력에서 명령을 읽습니다. 세트
쉘이 인수 없이 호출되면 자동으로.

인셀덤 공식 판매점인 -s 와 함께 사용됩니다. 세트 명령은 지정된 인수를
위치 매개변수(또는 배열에 할당하기 전에 정렬됨) name만약
-A 사용).

-U | -o utf8 모드
UTF-8 지원 활성화 이맥스 편집 모드 및 내부 문자열 처리
기능. 이 플래그는 기본적으로 비활성화되어 있지만 설정하여 활성화할 수 있습니다.
쉘 명령줄에서; 다음과 같은 경우 대화형 셸에 대해 자동으로 활성화됩니다.
컴파일 타임에 요청하면 시스템이 지원합니다. 로케일 설정(LC_CTYPE, "") and
선택 nl_lang정보(코드셋), 또는 LC_ALL, LC_CTYPE 또는 LANG 환경
변수 중 적어도 하나는 "UTF-8" 또는
"utf8"은 대소문자를 구분하지 않습니다. 에 따라 직접 내장 호출
앞서 언급한 환경 변수; 또는 stdin 또는 스크립트의 경우 입력이
UTF-8 바이트 순서 표시로 시작합니다.

가까운 장래에 로케일 추적이 구현될 예정입니다. 세트 -+유 is
POSIX 로케일 관련 환경 변수 중 하나가 변경될 때마다 변경됩니다.

-u | -o 명사
"$@" 또는 "$*" 이외의 설정되지 않은 매개변수 참조는
'-', '+' 또는 '=' 수식어 중 하나를 사용하지 않는 한 오류입니다.

-v | -o 말 수가 많은
쉘 입력을 읽을 때 표준 오류에 씁니다.

-X | -o 마크디어
파일 이름 생성 중에 후행 '/'로 디렉토리를 표시합니다.

-x | -o 엑스트레이스
명령 트리가 실행될 때 PS4 값이 앞에 오는 인쇄 명령 트리입니다.

-o bgnice
백그라운드 작업은 낮은 우선 순위로 실행됩니다.

-o 중괄호 확장
중괄호 확장(일명 교대)을 활성화합니다. 이것은 기본적으로 활성화되어 있습니다. 만약에
비활성화, 등호 뒤의 물결표 확장은 부작용으로 비활성화됩니다.

-o 이맥스
BRL emacs와 같은 명령줄 편집을 활성화합니다(대화식 셸만 해당). 보다 이맥스
편집 모드.

-o gmacs
gmacs와 유사한 명령줄 편집을 활성화합니다(대화형 셸만 해당). 현재
전치 문자(^T)가 약간 작동한다는 점을 제외하면 emacs 편집과 동일합니다.
다르게.

-o 무시하다
파일 끝을 읽을 때 쉘은 (쉽게) 종료되지 않습니다. 출구 반드시 사용해야합니다.
무한 루프를 피하기 위해 EOF를 연속으로 13번 읽으면 쉘이 종료됩니다.

-o 상속-xtrace
재설정하지 마십시오 -o 엑스트레이스 기능을 입력할 때. 이것은 기본적으로 활성화되어 있습니다.

-o 안돼
로그인 쉘이 종료될 때 SIGHUP 신호로 실행 중인 작업을 종료하지 마십시오.
현재 기본적으로 설정되어 있지만 나중에 호환되도록 변경될 수 있습니다.
AT&T 유닉스 KSH, 이 옵션은 없지만 SIGHUP을 보냅니다.
신호입니다.

-o 놀로그
효과가 없습니다. 원래 Korn 쉘에서 이것은 함수 정의가
기록 파일에 저장됩니다.

-o 물리적
원인 cdpwd "물리적"(예: 파일 시스템) '..'을 사용하는 명령
"논리적" 디렉토리 대신 디렉토리(즉, 쉘은 '..'를 처리합니다.
사용자가 디렉토리에 대한 심볼릭 링크를 인식하지 못하게 합니다. 삭제 기준
기본. 이 옵션을 설정해도 현재 값에는 영향을 미치지 않습니다.
PWD 매개변수; 오직 cd 명령은 PWD를 변경합니다. 참조 cdpwd 명령
자세한 내용은 위.

-o 파이프 실패
파이프라인의 종료 상태(논리적으로 보완하기 전)를
가장 오른쪽의 XNUMX이 아닌 errorlevel 또는 모든 명령이 XNUMX으로 종료된 경우 XNUMX입니다.

-o POSIX
표준에 더 가깝게 행동하십시오(참조 POSIX 모드 자세한 내용은). 자동으로
쉘 호출의 기본 이름이 "sh"로 시작하고 이것이
자동 감지 기능이 컴파일됩니다(MirBSD가 아님). 부작용으로 설정
이 플래그는 꺼집니다 중괄호 확장 수동으로 다시 켤 수 있는 모드
sh 모드(둘 다 동시에 활성화되지 않은 경우).

-o sh
사용 / 빈 / SH (kludge) 모드(참조 SH 모드). 다음과 같은 경우 자동으로 활성화됨
쉘 호출의 기본 이름은 "sh"로 시작하며 이 자동 감지 기능
(MirBSD가 아닌)에서 컴파일됩니다. 부작용으로 이 플래그를 설정하면 꺼집니다.
중괄호 확장 수동으로 다시 켤 수 있는 모드 POSIX 모드(만약
둘 다 동시에 활성화됨).

-o vi
사용 vi(1)과 유사한 명령줄 편집(대화형 셸에만 해당). 보다 Vi
편집 모드 문서화 및 제한 사항.

-o vi-esc완료
vi 명령줄 편집에서 탈출(^[) 시 명령 및 파일 이름 완성 수행
명령 모드로 들어갑니다.

-o vi-탭완성
vi 명령줄 편집에서 탭(^I)이 있을 때 명령 및 파일 이름 완성을 수행합니다.
삽입 모드로 들어갑니다. 이것이 기본값입니다.

-o 비로
효과가 없습니다. 원래 Korn 쉘에서 비로 vi 명령이 설정되었습니다.
라인 모드는 청각 장애(4) 드라이버는 ESC(^[)가 입력될 때까지 작업을 수행합니다.
mksh 항상 viraw 모드입니다.

이 옵션은 쉘 호출 시에도 사용할 수 있습니다. 현재 세트
옵션(단일 문자 이름 포함)은 '$-' 매개변수에서 찾을 수 있습니다. 세트 -o
어떤 옵션 이름도 모든 옵션과 각 옵션이 켜져 있는지 여부를 나열하지 않습니다. 세트 +o 의지
현재 켜져 있는 모든 옵션의 긴 이름을 인쇄합니다. 향후 버전에서는 세트
+o 현재 옵션을 복원하기 위해 POSIX 호환 및 인쇄 명령을 작동합니다.
대신.

남아 있는 인수는 위치 매개변수이며 순서대로 할당됩니다.
위치 매개변수(예: $1, $2 등). 옵션이 '--'로 끝나면
남은 인수가 없으면 모든 위치 매개변수가 지워집니다. 옵션이 없거나
인수가 주어지면 모든 이름의 값이 인쇄됩니다. 알려지지 않은 역사적
이유 때문에 고독한 '-' 옵션은 특별히 취급됩니다. -v-x
옵션을 제공합니다.

변화 [번호]
위치 매개변수 번호+ 1, 번호+2 등은 '1', '2' 등으로 이름이 변경됩니다.
번호 기본값은 1입니다.


최소한의 시간 동안 실행을 일시 중지합니다. 양의 XNUMX진수 값으로 지정됨
선택적 소수 부분으로. 신호 전달은 더 일찍 실행을 계속할 수 있습니다.

파일 [아르헨티나 ...]
처럼 . ("점"), 현재 작업 디렉토리가 검색에 추가된다는 점 제외
경로(GNU 세게 때리다 확대).

매달다
터미널에서 일시 중지 문자를 받은 것처럼 셸을 중지합니다. 그것은
부모 프로세스가 로그인 쉘의 구성원이 아니면 로그인 쉘을 일시 중지할 수 없습니다.
동일한 터미널 세션이지만 다른 프로세스 그룹의 구성원입니다. 일반적으로
규칙, 쉘이 다른 쉘에 의해 시작되었거나 다음을 통해 시작된 경우 su(1) 정지될 수 있습니다.

test 표현
[ 표현 ]
test 평가 표현 true인 경우 1 상태, false인 경우 XNUMX 이상을 반환합니다.
오류가 있는 경우 1보다 높습니다. 일반적으로 다음의 조건 명령으로 사용됩니다. if
동안 진술. 모두 심볼릭 링크를 따릅니다. 파일 제외하는 표현 -h
-L.

다음과 같은 기본 표현식을 사용할 수 있습니다.

-a 파일 파일 존재합니다.

-b 파일 파일 블록 특수 장치입니다.

-c 파일 파일 캐릭터 특수 장치입니다.

-d 파일 파일 디렉토리입니다.

-e 파일 파일 존재합니다.

-f 파일 파일 일반 파일입니다.

-G 파일 파일의 그룹은 쉘의 유효 그룹 ID입니다.

-g 파일 파일의 모드에는 setgid 비트가 설정되어 있습니다.

-H 파일 파일 컨텍스트 종속 디렉토리입니다(HP-UX에서만 유용함).

-h 파일 파일 심볼릭 링크입니다.

-k 파일 파일의 모드는 끈적끈적한(8) 비트 세트.

-L 파일 파일 심볼릭 링크입니다.

-O 파일 파일의 소유자는 쉘의 유효 사용자 ID입니다.

-o 선택권 껍질 선택권 설정됩니다(참조 세트 목록에 대한 위의 명령
옵션). 비표준 확장으로 옵션이 다음으로 시작하는 경우
'!', 테스트가 무효화됩니다. 다음과 같은 경우 테스트는 항상 실패합니다. 선택권
존재하지 않습니다(따라서 [ -o foo -o -o !foo ]는 다음 경우에만 true를 반환합니다.
옵션이라면 존재합니다). [ -o ?foo ]로 동일한 작업을 수행할 수 있습니다.
AT&T 유닉스처럼 ksh93. 선택권 가 이끄는 짧은 깃발이 될 수도 있습니다.
'-' 또는 '+'(논리적 부정 없음), 예: '-x' 또는 '+x'
'xtrace' 대신.

-p 파일 파일 명명된 파이프(FIFO)입니다.

-r 파일 파일 존재하며 읽을 수 있습니다.

-S 파일 파일 하는 유닉스(4)-도메인 소켓.

-s 파일 파일 비어 있지 않습니다.

-t fd 파일 기술자 fd 하는 청각 장애(4) 장치.

-u 파일 파일의 모드에는 setuid 비트가 설정되어 있습니다.

-w 파일 파일 존재하며 쓰기 가능합니다.

-x 파일 파일 존재하고 실행 가능합니다.

file1 -nt file2 file1 보다 최신입니다 file2 or file1 존재하고 file2 하지 않습니다.

file1 -오 file2 file1 ~보다 나이가 많다 file2 or file2 존재하고 file1 하지 않습니다.

file1 -만약에 file2 file1 와 같은 파일입니다 file2.

길이가 XNUMX이 아닙니다.

-n 비어 있지 않습니다.

-z 비었다.

= 문자열은 동일합니다.

== 문자열은 동일합니다.

> 첫 번째 문자열 피연산자가 두 번째 문자열 피연산자보다 큽니다.

< 첫 번째 문자열 피연산자가 두 번째 문자열 피연산자보다 작습니다.

!= 문자열이 같지 않습니다.

번호 -eq 번호 숫자는 같다고 비교됩니다.

번호 -네 번호 숫자가 같지 않은지 비교합니다.

번호 -게 번호 숫자는 크거나 같음을 비교합니다.

번호 -gt 번호 숫자는 보다 큼을 비교합니다.

번호 그들 번호 숫자는 작거나 같음을 비교합니다.

번호 -그 번호 숫자는 보다 작게 비교됩니다.

단항 연산자가 이진 연산자보다 우선하는 위의 기본 표현식
연산자는 다음 연산자와 결합될 수 있습니다(오름차순으로 나열됨).
우선 순위):

expr -o expr 논리적 OR.
expr -a expr 논리적 AND.
! expr 논리적 NOT.
( expr ) 그룹화.

숫자는 실제로 수식과 같은 산술 표현식일 수 있습니다.
용어 또는 정수 변수의 이름:

x=1; [ "x" -eq 1 ] 참으로 평가

몇 가지 특별한 규칙이 적용됩니다(POSIX 제공).
주장 test 또는 괄호 안에 [ ... ] XNUMX보다 작음: 선행하는 경우 '!'
XNUMX~XNUMX개의 인수만 남도록 인수를 제거할 수 있습니다.
낮아진 비교가 실행됩니다. (XSI 덕분에) 괄호 \( ... \) 낮은 XNUMX- 및
XNUMX인수 형식에서 XNUMX인수 및 XNUMX인수 형식으로 각각; XNUMX인수
형식은 궁극적으로 이진 연산을 선호하고 부정과 괄호가 뒤따릅니다.
저하; XNUMX인수 및 XNUMX인수 형식은 괄호 다음에 오는 부정을 선호합니다. 그만큼
인수가 하나인 형식은 항상 다음을 의미합니다. -n.

주의 사항: 일반적인 실수는 "if [ $foo = bar ]"를 사용하는 것입니다.
공백이 있거나(예: IFS 옥텟) 단항인 경우 NULL이거나 설정되지 않음
'!'와 같은 연산자 또는 '-n'. 대신 "if [ x"$foo" = x"bar" ]"와 같은 테스트를 사용하거나
이중 괄호 연산자 "if [[ $foo = bar ]]" 또는 패턴 일치를 피하기 위해(참조 [[
위): “if [[ $foo = "$bar" ]]”

XNUMXD덴탈의 [[ ... ]] 구조는 사용하기에 더 안전할 뿐만 아니라 종종 더 빠릅니다.

시간 [-p] [관로]
경우 관로 가 주어지면 파이프라인을 실행하는 데 사용된 시간이 보고됩니다. 아니오인 경우
파이프라인이 주어지면 셸 자체에서 사용하는 사용자 및 시스템 시간과 모든
시작된 이후 실행한 명령이 보고됩니다. 보고된 시간은
실시간(처음부터 끝까지 경과된 시간), 사용자 CPU 시간(사용한 시간)
사용자 모드에서 실행) 및 시스템 CPU 시간(커널 모드에서 실행하는 데 소요된 시간).
시간은 표준 오류로 보고됩니다. 출력 형식은 다음과 같습니다.

0m0.00s 실제 0m0.00s 사용자 0m0.00s 시스템

경우 -p 옵션이 주어지면 출력이 약간 더 길어집니다.

실제 0.00
사용자 0.00
시스템 0.00

를 지정하는 것은 오류입니다. -p 옵션이 아닌 한 관로 간단한 명령입니다.

표준 오류의 단순 리디렉션은 출력에 영향을 주지 않습니다. 시간 명령:

$ 시간 수면 1 2> 파일
$ { 시간 수면 1; } 2>파일

첫 번째 명령의 시간은 "afile"로 이동하지 않지만 두 번째 명령의 시간은 이동합니다.

시대 셸과 프로세스 모두에서 사용된 누적 사용자 및 시스템 시간을 인쇄합니다.
종료된 쉘이 시작되었습니다. 출력 형식은 다음과 같습니다.

0분0.00초 0분0.00초
0분0.00초 0분0.00초

트랩 n [신호 ...]
첫 번째 피연산자가 부호 없는 XNUMX진 정수인 경우 지정된 모든 신호를 재설정합니다.
기본 동작으로, 즉 호출과 동일합니다. 트랩 빼기 기호('-')로
매니저, 인수(n [신호 ...]), 모두 다음과 같이 취급됩니다.
신호.

트랩 [매니저 신호 ...]
지정된 경우 실행될 트랩 핸들러를 설정합니다. 신호S는
받았습니다. 매니저 신호를 나타내는 빈 문자열입니다.
무시됨, 빼기 기호('-'), 기본 작업이 다음에 대해 수행됨을 나타냄
신호(참조 신호(3)), 또는 실행할 쉘 명령을 포함하는 문자열
첫 번째 기회(즉, 현재 명령이 완료될 때 또는 인쇄하기 전에
신호 중 하나를 수신한 후 다음 PS1 프롬프트). 신호 의 이름입니다
신호(예: PIPE 또는 ALRM) 또는 신호 번호( 죽이기 -l 명령
위).

두 가지 특수 신호가 있습니다. EXIT(0이라고도 함)는 다음과 같은 경우에 실행됩니다.
shell은 종료하려고 하고, ERR은 오류가 발생한 후에 실행됩니다. 오류는
다음과 같은 경우 쉘이 종료되도록 하는 것 세트 -e or 세트 -o 실수 선택권
설정되었습니다. EXIT 처리기는 마지막으로 실행된 환경에서 실행됩니다.
명령.

비대화형 쉘의 경우 신호에 대해 트랩 처리기를 변경할 수 없습니다.
쉘이 시작될 때 무시되었습니다.

인수가 없으면 쉘 이후로 설정된 트랩의 현재 상태
시작됨은 일련의 트랩 명령. 출력은 트랩
다른 프로세스로 유용하게 연결될 수 있습니다(트랩이 지워진다는 사실의 아티팩트).
하위 프로세스가 생성될 때).

원래 Korn 쉘의 DEBUG 트랩과 ERR 및 EXIT 트랩의 처리
기능은 아직 구현되지 않았습니다.

참된 XNUMX 값으로 종료하는 명령입니다.

글로벌 [[+-alpnrtUux] [-L[n]] [-R[n]] [-Z[n]] [-i[n]] | -f [-턱시도]] [name [=가치] ...]
조판 [[+-alpnrtUux] [-LRZ[n]] [-i[n]] | -f [-턱시도]] [name [=가치] ...]
매개변수 속성을 표시하거나 설정합니다. 없이 name 인수, 매개변수 속성
표시됩니다. 옵션을 사용하지 않으면 모든 매개변수의 현재 속성이
로 인쇄 조판 명령; 옵션이 주어지면(또는 옵션 문자가 없는 '-'),
지정된 속성을 가진 모든 매개변수와 해당 값이 인쇄됩니다. 옵션이 있는 경우
'+'로 시작하면 매개변수 값이 인쇄되지 않습니다.

If name 인수가 주어지면 명명된 매개변수의 속성이 설정됩니다(-) 또는
클리어 (+). 매개변수 값은 선택적으로 지정할 수 있습니다. 을 위한 name[*],
변경 사항은 전체 어레이에 영향을 미치며 값을 지정할 수 없습니다.

If 조판 함수 내에서 사용되며 지정된 모든 매개변수는 현지화됩니다. 이것
그렇지 않으면 동일한 방식으로 수행되지 않습니다. 글로벌. 주의 사항: 이 말은 mksh 's 글로벌
명령은 지원 허용하지 않기 때문에 다른 프로그래밍 언어와 동일합니다.
실제 전역 범위에서 매개변수에 액세스하기 위해 다른 함수에서 호출되는 함수,
그러나 액세스된 항목을 로컬 범위에 넣는 것은 방지할 뿐입니다.

인셀덤 공식 판매점인 -f 사용, 조판 기능의 속성에서 작동합니다. 와 같은
없는 경우 매개변수 name 인수가 주어지면 함수는 해당 값과 함께 나열됩니다.
(예: 정의) 옵션이 '+'로 도입되지 않는 한, 이 경우
함수 이름이 보고됩니다.

-a 인덱스 배열 속성.

-f 기능 모드. 대신 기능 및 속성을 표시하거나 설정합니다.
매개 변수를 설정합니다.

-i[n] 정수 속성. n 정수를 표시할 때 사용할 기준을 지정합니다.
(지정하지 않으면 첫 번째 할당에서 주어진 베이스가 사용됨).
이 속성이 있는 매개변수에는 산술을 포함하는 값이 할당될 수 있습니다.
표현.

-L[n] 왼쪽 정렬 속성. n 필드 너비를 지정합니다. 만약에 n 지정되지 않고,
매개변수의 현재 너비(또는 첫 번째 할당된 값의 너비)
사용. 선행 공백(및 XNUMX과 함께 사용되는 경우 -Z 옵션)은
벗겨진. 필요한 경우 값이 잘리거나 공간에 맞게 채워집니다.
필드 너비.

-l 소문자 속성. 값의 모든 대문자는 다음으로 변환됩니다.
소문자. (원래 Korn 쉘에서 이 매개변수는 "긴 정수"를 의미했습니다.
와 함께 사용할 때 -i 선택권.)

-n 바인딩된 변수 만들기(이름 참조): 변수에 대한 모든 액세스 name
변수에 액세스합니다 가치 현재 범위에서(이는
AT&T 유닉스 ksh93!) 대신에. 또한 AT&T UNIX와 다릅니다. ksh93 그는
가치 당시에 게으른 평가 name 액세스됩니다. 이것은 다음에서 사용할 수 있습니다.
대신 이름이 매개변수로 전달되는 변수에 액세스하는 함수
사용 평가.

-p 인쇄 완료 조판 속성을 재생성하는 데 사용할 수 있는 명령
그리고 매개변수의 값.

-R[n] 오른쪽 정렬 속성. n 필드 너비를 지정합니다. 만약에 n 하지 않습니다
지정된 매개변수의 현재 너비(또는 첫 번째 매개변수의 너비)
할당된 값)을 사용합니다. 후행 공백이 제거됩니다. 필요하다면,
값은 선행 문자를 제거하거나 공백을 채워 값을 만듭니다.
필드 너비에 맞춥니다.

-r 읽기 전용 속성. 이 속성이 있는 매개변수는 다음에 할당될 수 없습니다.
또는 설정 해제. 이 속성이 설정되면 끌 수 없습니다.

-t 태그 속성. 껍질에는 의미가 없습니다. 응용 프로그램 사용을 위해 제공됩니다.

기능의 경우, -t 추적 속성입니다. 추적 기능이 있는 경우
속성이 실행되면 엑스트레이스 (-x) 쉘 옵션이 일시적으로 켜짐
에.

-U 부호 없는 정수 속성. 정수는 부호 없는 값으로 인쇄됩니다(결합
와 더불어 -i 옵션). 이 옵션은 원래 Korn 쉘에 없습니다.

-u 대문자 속성. 값의 모든 소문자는 다음으로 변환됩니다.
대문자. (원래 Korn 셸에서 이 매개변수는 "부호 없는
정수”와 함께 사용할 때 -i 대문자를 의미하는 옵션은
10보다 큰 염기에는 절대 사용하지 마십시오. -U 선택권.)

기능의 경우, -u 정의되지 않은 속성입니다. 보다 기능 위의
이것의 의미.

-x 내보내기 속성. 매개변수(또는 함수)는
실행된 모든 명령. 내보낸 기능은 아직 구현되지 않았습니다.

-Z[n] 제로 채우기 속성. 와 결합하지 않는 경우 -L, 이것은 다음과 동일합니다. -R제외
스페이스 패딩 대신 제로 패딩이 사용됩니다. 정수의 경우 숫자
베이스 대신 패딩이 있습니다.

다음 중 하나라도 -i, -L, -l, -R, -U, -u-Z 옵션이 변경되고 다른 모든 옵션은 여기에서
동일한 명령줄에 지정되지 않은 경우 집합이 지워집니다.

한계 [-aBCcdefHilMmnOPpqrSsTtVvw] [가치]
프로세스 제한을 표시하거나 설정합니다. 옵션을 사용하지 않으면 파일 크기 제한(-f)이다
추정. 가치, 지정된 경우 산술 표현식 또는 단어일 수 있습니다.
"제한 없는". 제한은 셸 및 셸에서 생성된 모든 프로세스에 영향을 미칩니다.
한도가 부과된 후. 일부 시스템에서는 제한을 허용하지 않을 수 있습니다.
일단 설정되면 증가합니다. 또한 사용 가능한 제한 유형은 시스템입니다.
종속 – 일부 시스템은 -f 한도.

-a 모든 한계를 표시합니다. ~하지 않는 한 -H 를 사용하면 소프트 한계가 표시됩니다.

-B n 소켓 버퍼 크기를 다음으로 설정 n 키비바이트.

-C n 캐시된 스레드 수를 다음으로 설정 n.

-c n 다음 크기 제한을 부과합니다. n 코어 덤프 크기에 대한 블록.

-d n 다음 크기 제한을 부과합니다. n 데이터 영역의 크기에 대한 kibibytes.

-e n 최대 niceness를 다음으로 설정 n.

-f n 다음 크기 제한을 부과합니다. n 쉘과 그 자식이 작성한 파일에 대한 블록
프로세스(모든 크기의 파일을 읽을 수 있음).

-H 하드 제한만 설정합니다(기본값은 하드 제한과 소프트 제한을 모두 설정하는 것임).

-i n 대기 중인 신호 수를 다음으로 설정 n.

-l n 한도를 부과하다 n 잠긴(유선) 물리적 메모리의 양에 대한 kibibytes.

-M n AIO 잠금 메모리를 다음으로 설정 n 키비바이트.

-m n 한도를 부과하다 n 사용된 물리적 메모리 양에 대한 kibibytes.

-n n 한도를 부과하다 n 한 번에 열 수 있는 파일 설명자.

-O n AIO 작업 수를 다음으로 설정 n.

-P n 프로세스당 스레드 수를 다음으로 제한 n.

-p n 한도를 부과하다 n 사용자가 언제든지 실행할 수 있는 프로세스.

-q n POSIX 메시지 대기열의 크기를 다음으로 제한 n 바이트.

-r n 최대 실시간 우선 순위를 다음으로 설정 n.

-S 소프트 제한만 설정합니다(기본값은 하드 제한과 소프트 제한을 모두 설정하는 것임).

-s n 다음 크기 제한을 부과합니다. n 스택 영역의 크기에 대한 kibibytes.

-T n 의 시간 제한을 부과 n 각 프로세스에서 사용할 실제 초.

-t n 의 시간 제한을 부과 n 각 사용자 모드에서 사용되는 CPU 시간
프로세스.

-V n Haiku의 vnode 모니터 수를 다음으로 설정합니다. n.

-v n 한도를 부과하다 n 가상 메모리(주소 공간)의 양에 대한 kibibytes
익숙한.

-w n 한도를 부과하다 n 사용된 스왑 공간의 양에 대한 kibibytes.

한계 한 블록은 512바이트입니다.

마스크 [-S] [마스크]
파일 권한 생성 마스크 또는 umask를 표시하거나 설정합니다(참조 마스크(2)). 만약 -S
옵션을 사용하면 표시되거나 설정된 마스크가 기호입니다. 그렇지 않으면 XNUMX진수입니다.
수.

상징적 마스크는 chmod를(1). 사용될 때, 그들은 무엇을 설명합니다
권한을 사용할 수 있습니다(세트 비트가 의미하는 XNUMX진수 마스크와 반대로).
해당 비트가 지워집니다). 예를 들어 "ug=rwx,o="는 마스크를 다음과 같이 설정합니다.
파일은 "다른 사람"이 읽거나 쓰거나 실행할 수 없으며 동등합니다.
(대부분의 시스템에서) 007진수 마스크 "XNUMX"로 설정합니다.

별칭 [-adt] [name ...]
주어진 이름의 별칭이 제거됩니다. 만약 -a 옵션이 사용되면 모든 별칭
제거됩니다. 만약 -t or -d 옵션이 사용되면 표시된 작업이 수행됩니다.
추적 또는 디렉터리 별칭에서 각각 출력됩니다.

설정 해제 [-fv] 매개 변수 ...
명명된 매개변수 설정 해제(-v, 기본값) 또는 함수(-f). 와 매개 변수[*],
속성은 유지되고 값만 설정 해제됩니다.

매개변수에 읽기 전용 속성이 있는 경우 종료 상태는 XNUMX이 아닙니다.
그렇지 않으면 XNUMX으로 설정합니다.

기다리다 [ ...]
지정된 작업이 완료될 때까지 기다리십시오. 종료 상태 기다리다 마지막 것입니다
지정된 직업; 마지막 작업이 신호에 의해 종료되면 종료 상태는 128 +
신호 번호(참조 죽이기 -l 종료 상태 위에); 마지막으로 지정된 작업이
찾을 수 없습니다(존재하지 않았거나 이미 완료되었기 때문에). 기다리다
127입니다. 참조 제어 형식은 아래 . 기다리다 신호가 있으면 돌아올 것입니다
트랩이 설정된 트랩이 수신되거나 SIGHUP, SIGINT 또는 SIGQUIT 신호가 수신된 경우
수신됩니다.

작업이 지정되지 않은 경우 기다리다 현재 실행 중인 모든 작업(있는 경우)이
완료하고 XNUMX 상태로 종료합니다. 작업 모니터링이 활성화된 경우 완료
작업 상태가 인쇄됩니다(작업이 명시적으로 지정된 경우는 아님).

어떻게 [- PV.] [name ...]
없이 -v 옵션과 동일합니다 명령 -v, 별칭이 인쇄되지 않는 경우를 제외하고
별칭 명령으로. 와 더불어 -v 옵션과 완전히 동일합니다. 명령 -V. 에
어느 쪽이든, -p 옵션 다름: 검색 경로는 다음에서 영향을 받지 않습니다. 어떻게하지만,
검색은 경로로 제한됩니다.

제어
작업 제어는 프로세스 또는 프로세스인 작업을 모니터링하고 제어하는 ​​셸의 기능을 나타냅니다.
명령 또는 파이프라인을 위해 생성된 프로세스 그룹입니다. 최소한 쉘은 추적합니다.
현재 존재하는 백그라운드(즉, 비동기) 작업의 상태 이것
정보는 다음을 사용하여 표시할 수 있습니다. 작업 명령. 작업 제어가 완전히 활성화된 경우
(사용 세트 -m or 세트 -o 모니터), 대화식 쉘의 경우와 마찬가지로 작업 프로세스
자체 프로세스 그룹에 배치됩니다. suspend를 입력하여 포그라운드 작업을 중지할 수 있습니다.
터미널의 문자(일반적으로 ^Z), 작업은 포그라운드 또는
를 사용한 배경 fgbg 명령 및 터미널 상태가 저장되거나 복원됩니다.
포그라운드 작업이 중지되거나 다시 시작될 때 각각.

프로세스를 생성하는 명령(예: 비동기 명령, 서브쉘)만
명령 및 비내장, 비기능 명령)을 중지할 수 있습니다. 다음과 같은 명령 읽기
있다.

작업이 생성되면 작업 번호가 할당됩니다. 대화형 쉘의 경우 이 숫자는
"[..]" 안에 인쇄되고 그 뒤에 작업에 있는 프로세스의 프로세스 ID가 표시됩니다.
비동기 명령이 실행됩니다. 작업은 다음에서 참조할 수 있습니다. bg, fg, 작업, 죽이기기다리다
명령 파이프라인에 있는 마지막 프로세스의 프로세스 ID(
전에, $! 매개변수) 또는 작업 번호 앞에 퍼센트 기호('%')를 붙입니다. 기타 비율
시퀀스는 작업을 참조하는 데 사용할 수도 있습니다.

%+ | %% | % 가장 최근에 중지된 작업 또는 중지된 작업이 없으면 가장 오래된 작업
작업을 실행합니다.

%- 될 직업 %+ 후자가 존재하지 않는 경우 작업.

%n 작업 번호가 있는 작업 n.

%? 문자열을 포함하는 명령이 있는 작업 (오류가 발생하면
여러 작업이 일치합니다).

% 문자열로 시작하는 명령이 있는 작업 (오류가 발생하면
여러 작업이 일치합니다).

작업 상태가 변경되면(예: 백그라운드 작업이 완료되거나 포그라운드 작업이 중지됨)
쉘은 다음 상태 정보를 인쇄합니다.

[번호] 플래그 지위 명령

어디...

번호 작업의 작업 번호입니다.

플래그 작업이 '+' 또는 '-' 문자인 경우 %+ or %- 각각 직업 또는 공간
둘 다 아닌 경우;

지위 작업의 현재 상태를 나타내며 다음과 같을 수 있습니다.

완료 [번호]
작업이 종료되었습니다. 번호 생략된 작업의 종료 상태입니다.
상태가 XNUMX인 경우.

Running 작업이 중지되거나 종료되지 않았습니다.
반드시 CPU 시간 소비를 의미합니다. 프로세스가 차단될 수 있습니다.
어떤 이벤트를 기다리고 있습니다).

중지됨 [신호]
표시된 시간에 작업이 중지되었습니다. 신호 (신호가 주어지지 않으면
작업이 SIGTSTP에 의해 중지됨).

신호 설명 ["코어 덤프"]
작업이 신호(예: 메모리 오류, 끊김)에 의해 종료되었습니다. 사용 죽이기 -l
신호 설명 목록. "core dumped" 메시지는 다음을 나타냅니다.
프로세스가 코어 파일을 생성했습니다.

명령 프로세스를 만든 명령입니다. 프로세스에 여러 프로세스가 있는 경우
작업, 각 프로세스에는 자신의 작업을 보여주는 라인이 있습니다. 명령 그리고 아마도 그것의 지위만약
이전 프로세스의 상태와 다릅니다.

중지된 상태의 작업이 있는 동안 셸을 종료하려고 하면
shell은 중지된 작업이 있음을 사용자에게 경고하고 종료하지 않습니다. 또 다른 시도라면
즉시 셸을 종료하면 중지된 작업에 SIGHUP 신호가 전송되고 셸이
종료합니다. 마찬가지로, 안돼 옵션이 설정되지 않았으며 시도할 때 실행 중인 작업이 있습니다.
로그인 쉘을 종료하도록 만들어지면 쉘은 사용자에게 경고하고 종료하지 않습니다. 다른 경우
즉시 쉘 종료를 시도하면 실행 중인 작업에 SIGHUP 신호가 전송되고
쉘이 종료됩니다.

POSIX 모드
입력 세트 -o POSIX 모드는 원인이 됩니다 mksh 장소에서 더 많은 POSIX 호환 동작
기본값 또는 의견이 다른 경우. 참고 mksh 서명되지 않은 상태로 계속 작동합니다.
32비트 산술; 사용 lksh 호스트에서 산술 연산을 수행하는 경우 데이터 유형, ISO C로 완료
정의되지 않은 동작이 필요합니다. 참조 lksh(1) 자세한 내용은 매뉴얼 페이지. 대부분의 다른
역사적, AT&T UNIX KSH- 호환 가능하거나 독단적인 차이는 이것을 사용하여 비활성화할 수 있습니다.
방법; 이것들은:

· GNU 세게 때리다 I / O 리디렉션 &>파일 더 이상 지원되지 않습니다.

· I/O 리디렉션에 의해 생성된 파일 설명자는 자식 프로세스에 의해 상속됩니다.

· 선행 숫자 XNUMX이 있는 숫자는 XNUMX진수로 해석됩니다.

· XNUMXD덴탈의 에코 builtin은 백슬래시를 해석하지 않으며 정확한 옵션 "-n".

· ... (목록이 불완전하며 R53의 경우 변경될 수 있음)

SH 모드
호환 모드; 쉽게 고칠 수 없는 레거시 스크립트와 함께 사용하기 위한 것입니다. 그만큼
변경 사항은 다음과 같습니다.

· GNU 세게 때리다 I / O 리디렉션 &>파일 더 이상 지원되지 않습니다.

· I/O 리디렉션에 의해 생성된 파일 설명자는 자식 프로세스에 의해 상속됩니다.

· XNUMXD덴탈의 에코 builtin은 백슬래시를 해석하지 않으며 정확한 옵션 "-n".

· ... (목록이 불완전하며 R53의 경우 변경될 수 있음)

대화 형 입력 편집
셸은 다음에서 명령줄을 읽는 세 가지 모드를 지원합니다. 청각 장애(4) 인터랙티브
에 의해 제어되는 세션 이맥스, gmacsvi 옵션(이들 중 최대 하나는
한 번). 기본값은 이맥스. 편집 모드는 다음을 사용하여 명시적으로 설정할 수 있습니다. 세트 내장한다.
이러한 옵션 중 어느 것도 활성화되지 않은 경우 셸은 단순히 일반 청각 장애(4)
운전사. 만약 이맥스 or gmacs 옵션이 설정되면 셸에서 emacs와 같은 편집을 허용합니다.
명령; 마찬가지로, 만약 vi 옵션이 설정되면 쉘은 vi와 같은 편집을 허용합니다.
명령. 이러한 모드는 다음 섹션에서 자세히 설명합니다.

이러한 편집 모드에서 라인이 화면 너비보다 긴 경우(COLUMNS 참조)
매개변수), '>', '+' 또는 '<' 문자는 다음을 나타내는 마지막 열에 표시됩니다.
현재 위치 뒤, 앞, 뒤 또는 앞에 더 많은 문자가 있습니다.
각기. 라인은 필요에 따라 가로로 스크롤됩니다.

완료된 라인은 IFS 옥텟 또는 IFS로 시작하지 않는 한 히스토리에 푸시됩니다.
공백이거나 이전 행과 동일합니다.

이맥스 편집 모드
이맥스 옵션이 설정되어 있으면 대화형 입력 줄 편집이 활성화됩니다. 경고: 이 모드
원래 Korn 셸의 emacs 모드와 약간 다릅니다. 이 모드에서는 다양한
편집 명령(일반적으로 하나 이상의 제어 문자에 바인딩됨)은 즉각적인 조치를 유발합니다.
개행을 기다리지 않고. 여러 편집 명령이 특정 컨트롤에 바인딩됨
쉘이 호출될 때의 문자; 이러한 바인딩은 다음을 사용하여 변경할 수 있습니다. 바인딩 명령.

다음은 사용 가능한 편집 명령 목록입니다. 각 설명은
콜론이 붙은 명령 이름; [n] (명령 앞에
세다); 및 캐럿 표기법을 사용하여 작성된 명령이 기본적으로 바인딩된 모든 키 예:
ASCII ESC 문자는 ^[로 작성됩니다. 이러한 제어 시퀀스는 대/소문자를 구분하지 않습니다.
명령에 대한 카운트 접두사는 ^[ 시퀀스를 사용하여 입력됩니다.n어디로 n 1의 시퀀스입니다
또는 더 많은 자릿수. 별도로 지정하지 않는 한 개수를 생략하면 기본값은 1입니다.

편집 명령 이름은 바인딩 명령. 게다가, 많은
편집 명령은 커서가 보이는 터미널에서만 유용합니다. 기본 바인딩
해당 Emacs 키 바인딩과 유사하도록 선택되었습니다. 사용자의 청각 장애(4) 문자
(예: ERASE)는 합당한 대체 항목에 바인딩되며 기본 바인딩을 재정의합니다.

중단: ^C, ^G
현재 명령을 중단하고 라인 버퍼를 비우고 종료 상태를
중단되었습니다.

자동 삽입: [n]
단순히 문자가 리터럴 입력으로 나타나도록 합니다. 대부분의 평범한 캐릭터
이에 결속되어 있습니다.

역방향 문자: [n] ^B, ^XD, ANSI-CurLeft, PC-CurLeft
커서를 뒤로 이동합니다. n 자.

역방향 단어: [n] ^[b, ANSI-Ctrl-CurLeft, ANSI-Alt-CurLeft
커서를 단어의 처음으로 뒤로 이동합니다. 단어로 구성
영숫자, 밑줄('_') 및 달러 기호('$') 문자.

역사의 시작: ^[
기록의 시작 부분으로 이동합니다.

라인 시작: ^A, ANSI-Home, PC-Home
편집된 입력 라인의 시작 부분으로 커서를 이동합니다.

대문자 단어: [n] ^[C, ^[C
다음의 첫 번째 문자를 대문자로 n 단어, 커서가 끝을 지나서 남음
마지막 단어의.

화면 지우기: ^[^L
컴파일 타임 구성 가능 시퀀스를 인쇄하여 화면을 지우고 커서를 홈으로 가져옵니다.
전체 프롬프트와 현재 편집된 입력 줄을 다시 그립니다. 기본 시퀀스
거의 모든 표준 터미널에서 작동합니다.

댓글: ^[#
현재 줄이 주석 문자로 시작하지 않으면 맨 앞에 추가됩니다.
행의 시작과 행이 입력됩니다(리턴을 누른 것처럼).
그렇지 않으면 기존 주석 문자가 제거되고 커서가
라인의 시작.

완료: ^[^[
명령어 이름이나 파일 이름이 고유한 만큼 자동 완성
커서를 포함합니다. 나머지 전체 명령 또는 파일 이름이 고유한 경우
공백은 디렉토리 이름이 아닌 경우 완료 후 인쇄됩니다.
'/'가 추가됩니다. 현재 부분 단어가 포함된 명령 또는 파일 이름이 없는 경우
접두사로 벨 문자가 출력됩니다(일반적으로 경고음이 울림).

완전한 명령: ^X^[
부분이 있는 명령 이름의 고유한 만큼 자동 완성
에서와 같이 접두사로 커서까지 단어 완전한 위의 명령.

전체 파일: ^[^X
부분이 있는 파일 이름의 고유한 만큼 자동 완성
에서와 같이 접두사로 커서까지 단어 완전한 위에서 설명한 명령.

전체 목록: ^I, ^[=
현재 단어를 가능한 한 많이 완성하고 가능한 단어를 나열하십시오.
그것을 위한 완성. 완료가 하나만 가능한 경우 다음과 같이 일치합니다. 완전한
위의 명령. ^I는 일반적으로 TAB(tabulator) 키에 의해 생성됩니다.

삭제-문자-뒤로: [n] 지우기, ^?, ^H
삭제 n 커서 앞의 문자.

삭제 문자 전달: [n] ANSI-Del, PC-Del
삭제 n 커서 뒤의 문자.

삭제-단어-뒤로: [n] 삭제, ^[^?, ^[^H, ^[h
삭제 n 커서 앞의 단어.

삭제 단어 전달: [n] ^[디
커서 뒤의 문자를 끝까지 삭제합니다. n 단어.

다운 히스토리: [n] ^N, ^XB, ANSI-CurDown, PC-CurDown
히스토리 버퍼를 앞으로 스크롤합니다. n 라인(나중에). 각 입력 라인은 원래
히스토리 버퍼의 마지막 항목 직후에 시작하므로 다운 히스토리 하지 않습니다
다음 중 하나까지 유용 검색 기록, 검색 기록 업 or 업 히스토리 있다
수행.

소문자-단어: [n] ^[엘, ^[엘
다음 소문자 n 단어.

편집 라인: [n] ^제
라인 편집 n 또는 지정되지 않은 경우 현재 줄을 대화식으로 표시합니다. 실제
실행된 명령은 fc -e ${시각적:-${편집자:-vi}} n.

역사의 끝: ^[>
기록의 끝으로 이동합니다.

라인 끝: ^E, ANSI-End, PC-End
커서를 입력 줄의 끝으로 이동합니다.

엇: ^_
파일 끝으로 작동합니다. 이것은 편집 모드 입력이 일반을 비활성화하기 때문에 유용합니다.
터미널 입력 정규화.

삭제 또는 삭제: [n] ^D
처럼 연기하다 어트 라인에 혼자 있는 경우; 그렇지 않으면 삭제 문자 전달.

오류: (연결되지 않음)
오류입니다(종을 울려주세요).

포인트와 마크 교환: ^X^X
표시가 있는 곳에 커서를 놓고 커서가 있던 위치에 표시를 설정합니다.

확장 파일: ^[*
현재 단어에 '*'를 추가하고 단어를 다음의 결과로 바꿉니다.
단어에 대해 파일 글로빙을 수행합니다. 패턴과 일치하는 파일이 없으면 벨이 울립니다.
가로장.

정방향 문자: [n] ^F, ^XC, ANSI-CurRight, PC-CurRight
커서를 앞으로 이동합니다. n 자.

앞으로 단어: [n] ^[f, ANSI-Ctrl-CurRight, ANSI-Alt-CurRight
커서를 끝 부분으로 앞으로 이동합니다. n일.

고토 히스토리 : [n] ^[지
역사 번호로 이동 n.

킬라인: KILL
전체 입력 라인을 삭제합니다.

킬-영역: ^W
커서와 마크 사이의 입력을 삭제합니다.

킬투얼: [n] ^K
다음과 같은 경우 커서에서 줄 끝까지 입력을 삭제합니다. n 지정되지 않았습니다.
그렇지 않으면 커서와 열 사이의 문자를 삭제합니다. n.

목록: ^[?
명령 이름 또는 파일 이름(있는 경우)의 정렬된 열 목록을 인쇄합니다.
커서가 포함된 부분 단어를 완성합니다. 디렉토리 이름에 '/'가 추가됨
그들에게.

목록 명령: ^X?
명령 이름(있는 경우)의 정렬된 열 목록을 인쇄합니다.
커서를 포함하는 부분 단어.

목록 파일: ^X^Y
파일 이름의 정렬된 열 목록(있는 경우)을 인쇄합니다.
커서를 포함하는 부분 단어. 설명된 대로 파일 유형 표시기가 추가됩니다.
아래에 명부 위.

개행: ^J, ^M
현재 입력 행이 쉘에 의해 처리되도록 합니다. 현재 커서
위치는 라인의 어느 위치에나 있을 수 있습니다.

개행 및 다음: ^O
현재 입력 라인이 쉘에 의해 처리되고 다음 라인이
히스토리가 현재 행이 됩니다. 이것은 다음에만 유용합니다. 업 히스토리,
검색 기록 or 검색 기록 업.

무작동: 종료
이것은 아무것도 하지 않습니다.

접두사-1: ^[
2문자 명령 시퀀스를 소개합니다.

접두사-2: ^X, ^[[, ^[O
2문자 명령 시퀀스를 소개합니다.

이전-히스트-단어: [n] ^[., ^[_
마지막 단어, 또는 주어진 경우 n이전 단어(반복 시)의 번째 단어(XNUMX부터 시작)
실행, 마지막 두 번째, 마지막 세 번째 등) 명령이 커서에 삽입됩니다. 사용
이 편집 명령은 마크를 삭제합니다.

인용: ^^, ^V
다음 문자는 편집 명령이 아닌 문자 그대로 사용됩니다.

다시 그리기: ^L
프롬프트 문자열의 마지막 줄과 현재 입력 줄을 새
줄입니다.

검색-문자-뒤로: [n] ^[^]
현재 줄에서 뒤로 검색하여 n다음 문자의 th 발생
타자.

검색-문자-앞으로: [n] ^]
현재 줄에서 앞으로 검색 n다음 문자의 th 발생
타자.

검색 기록: ^R
증분 검색 모드로 들어갑니다. 내부 이력 목록이 역방향으로 검색됩니다.
입력과 일치하는 명령. 검색 문자열의 초기 '^'는
찾다. Esc 키는 검색 모드를 종료합니다. 시퀀스를 포함한 기타 명령
탈출의 접두사-1 다음 접두사-1 or 접두사-2 키는 다음에 실행됩니다.
검색 모드를 종료합니다. 그만큼 중단하다 (^G) 명령은 이전에 입력 행을 복원합니다.
검색이 시작되었습니다. 연속 검색 기록 명령은 뒤로 검색을 계속합니다.
패턴의 다음 이전 발생. 히스토리 버퍼는
한정된 수의 라인; 가장 오래된 것은 필요에 따라 폐기됩니다.

검색 기록 업: ANSI-PgUp, PC-PgUp
시작이 일치하는 명령에 대해 히스토리 버퍼를 통해 뒤로 검색합니다.
커서 앞의 입력 라인 부분. 빈 줄에 사용하면
와 같은 효과 업 히스토리.

검색 기록 다운: ANSI-PgDn, PC-PgDn
시작이 일치하는 명령에 대해 히스토리 버퍼를 통해 앞으로 검색합니다.
커서 앞의 입력 라인 부분. 빈 줄에 사용하면
와 같은 효과 다운 히스토리. 이것은 다음에만 유용합니다. 업 히스토리,
검색 기록 or 검색 기록 업.

세트 마크 명령: ^[
커서 위치에 마크를 설정합니다.

전치 문자: ^T
줄의 끝에 있는 경우 또는 gmacs 옵션이 설정되면 두 값이 교환됩니다.
이전 문자; 그렇지 않으면 이전 문자와 현재 문자를 교환하고
커서를 오른쪽으로 한 문자 이동합니다.

업 히스토리 : [n] ^P, ^XA, ANSI-CurUp, PC-CurUp
히스토리 버퍼를 뒤로 스크롤합니다. n 선(이전).

대문자 단어: [n] ^[유, ^[유
다음을 대문자로 n 단어.

버전: ^[^V
버전 표시 mksh. 키가 입력되는 즉시 현재 편집 버퍼가 복원됩니다.
을 누릅니다. 복원 키 누르기는 공백이 아닌 한 처리됩니다.

잡아당기기: ^Y
현재 커서 위치에 가장 최근에 죽인 텍스트 문자열을 삽입합니다.

홱-팝: ^[y
즉시 양키, 삽입된 텍스트 문자열을 이전의 다음 문자열로 바꿉니다.
텍스트 문자열을 죽였습니다.

Vi 편집 모드
참고 : vi 명령줄 편집 모드는 고아이지만 여전히 작동합니다. 8비트 클린
그러나 특히 UTF-8 또는 MBCS를 지원하지 않습니다.

vi 명령줄 편집기 mksh 기본적으로 다음과 같은 명령이 있습니다. vi(1) 편집기
다음 예외:

· 삽입 모드에서 시작합니다.

· 파일 이름 및 명령 완성 명령이 있습니다: =, \, *, ^X, ^E, ^F 및,
선택적으로 그리고 .

· XNUMXD덴탈의 _ 명령이 다릅니다(에서 mksh, 마지막 인수 명령입니다. ~에 vi(1) 간다
현재 줄의 시작 부분으로).

· XNUMXD덴탈의 /G 명령은 반대 방향으로 이동합니다. j 명령.

· 한 줄 편집기에서 의미가 없는 명령은 사용할 수 없습니다(예: screen
이동 명령 및 ex(1) 스타일 콜론(:) 명령).

처럼 vi(1) "삽입" 모드와 "명령" 모드의 두 가지 모드가 있습니다. 삽입 모드에서 대부분
문자는 입력될 때 현재 커서 위치의 버퍼에 넣기만 하면 됩니다.
그러나 일부 문자는 특별하게 취급됩니다. 특히 다음 문자는
현재에서 가져온 청각 장애(4) 설정(참조 스티(1)) 및 일반적인 의미(정상 값)를 갖습니다.
괄호 안에 있음): kill(^U), 지우기(^?), werase(^W), eof(^D), intr(^C) 및 종료(^\).
위의 문자 외에도 삽입에서 다음 문자도 특수 처리됩니다.
방법:

^E 명령 및 파일 이름 열거(아래 참조).

^F 명령 및 파일 이름 완성(아래 참조). 연속으로 두 번 사용하면 목록이
가능한 완료가 표시됩니다. 세 번째로 사용하면 완료가 취소됩니다.

^H 이전 문자를 지웁니다.

^J | ^M 줄 끝. 현재 줄은 셸에서 읽고 구문 분석하고 실행합니다.

^V 리터럴 다음. 입력된 다음 문자는 특별히 처리되지 않습니다(다음에 사용할 수 있음).
여기에 설명된 문자를 삽입하십시오).

^X 명령 및 파일 이름 확장(아래 참조).

편집기를 명령 모드로 설정합니다(아래 참조).

선택적 파일 이름 및 명령 완성(참조 ^F 위), 세트 -o
vi-탭완성.

명령 모드에서 각 문자는 명령으로 해석됩니다. 안하는 캐릭터
명령에 해당하거나, 명령의 잘못된 조합이거나, 사용할 수 없는 명령입니다.
수행하면 모두 경고음이 발생합니다. 다음 명령 설명에서 [n]는
명령 앞에 숫자가 붙을 수 있습니다(예: 10l 오른쪽으로 10자 이동); 숫자가 없으면
프리픽스가 사용되며, n 달리 지정하지 않는 한 1로 간주됩니다. "현재의
위치”는 커서와 커서 앞의 문자 사이의 위치를 ​​나타냅니다.
"단어"는 일련의 문자, 숫자 및 밑줄 문자 또는
문자, 숫자, 밑줄 및 공백이 아닌 문자(예: "ab2*&^"에는
단어) 및 "빅 워드"는 공백이 아닌 문자의 시퀀스입니다.

이달의 스페셜 mksh vi 명령:

다음 명령은 일반 vi 파일 편집기에 없거나 다릅니다.

[n]_ 뒤에 공백을 삽입하십시오. n히스토리의 마지막 명령에서 th 빅워드
현재 위치에서 삽입 모드로 들어갑니다. 만약에 n 지정되지 않은 경우 마지막
단어가 삽입됩니다.

# 현재 줄의 시작 부분에 주석 문자('#')를 삽입하고 반환
쉘에 선 (에 해당 나#^J).

[n]g 좋아요 G, 다음 경우를 제외하고 n 지정하지 않으면 가장 최근에 기억된
줄입니다.

[n]v 라인 편집 n 를 사용하여 vi(1) 편집자 만약에 n 지정되지 않은 경우 현재 줄은
수정했습니다. 실행되는 실제 명령은 fc -e ${시각적:-${편집자:-vi}} n.

* 및 ^X 명령 또는 파일 이름 확장이 현재 빅워드에 적용됩니다(
단어에 파일 글로빙 문자가 포함되지 않은 경우 '*' 추가) – 빅워드는
결과 단어로 대체됩니다. 현재 큰 단어가
줄 또는 ';', '|', '&', '(' 또는 ')' 문자 중 하나를 따르며
슬래시('/')를 포함하면 명령 확장이 완료됩니다. 그렇지 않으면 파일 이름
확장이 이루어집니다. 명령 확장은 모든 것에 대한 큰 단어와 일치합니다.
별칭, 기능 및 내장 명령과 발견된 모든 실행 파일
PATH 매개변수에서 디렉토리를 검색합니다. 파일 이름 확장 일치
현재 디렉토리의 파일에 대한 빅워드. 확장 후,
커서는 마지막 단어 바로 뒤에 위치하며 편집기는 삽입 모드에 있습니다.

[n]\, [n]^F, [n] , 그리고 [n]
명령/파일 이름 완성. 현재 큰 단어를 가장 긴 단어로 교체
명령 및 파일 이름 확장을 수행한 후 얻은 고유 일치.
경우에만 인식됩니다. vi-탭완성 옵션이 설정되어 있는 동안 오직
경우 인식 vi-esc완료 옵션이 설정되어 있습니다(참조 세트 -o). 만약 n 지정되고,
전에, n가능한 완료가 선택되었습니다(명령/파일 이름에 의해 보고된 대로).
열거 명령).

= 및 ^E 명령/파일 이름 열거. 일치하는 모든 명령 또는 파일 나열
현재 큰 단어.

^V 버전 표시 mksh. 현재 편집 버퍼는
키가 눌립니다. 복원 키 누르기는 무시됩니다.

@c 매크로 확장. 별칭에 있는 명령 실행 c.

인트라 라인 이동 명령:

[n]손 [n]^H
왼쪽으로 이동 n 자.

[n]땅 [n]
오른쪽으로 이동해라 n 자.

0 0열로 이동합니다.

^ 공백이 아닌 첫 번째 문자로 이동합니다.

[n]| 열로 이동 n.

$ 마지막 문자로 이동합니다.

[n]b 뒤로 이동 n 단어.

[n]B 뒤로 이동 n 큰 단어.

[n]e 단어의 끝으로 앞으로 이동합니다. n 시간.

[n]E 큰 단어의 끝으로 앞으로 이동합니다. n 시간.

[n]w 앞으로 이동 n 단어.

[n]W 앞으로 이동 n 큰 단어.

% 일치하는 항목을 찾습니다. 편집기는 가장 가까운 괄호, 대괄호 또는 중괄호를 찾습니다.
그런 다음 일치하는 괄호, 대괄호 또는 중괄호로 커서를 이동합니다.

[n]fc 앞으로 이동 n문자의 th 발생 c.

[n]Fc 뒤로 이동 n문자의 th 발생 c.

[n]tc 직전까지 앞으로 이동 n문자의 th 발생 c.

[n]Tc 바로 직전으로 뒤로 이동 n문자의 th 발생 c.

[n]; 마지막 반복 f, F, tT 명령.

[n], 마지막 반복 f, F, tT 명령을 내리지만 반대 방향으로 움직입니다.

행간 이동 명령:

[n]제이, [n]+ 및 [n]^N
로 이동 n역사의 다음 줄.

[n]케이, [n]-, 그리고 [n]^피
로 이동 n역사의 이전 라인.

[n]G 행으로 이동 n 역사상; 만약에 n 지정되지 않은 경우 첫 번째 번호
기억된 라인이 사용됩니다.

[n]g 좋아요 G, 다음 경우를 제외하고 n 지정하지 않으면 가장 최근에 기억된 줄로 이동합니다.

[n]/
에 대한 역사를 통해 뒤로 검색 n포함하는 th 라인 ; 만약
'^'로 시작하고 나머지 문자열은 기록 시작 부분에 나타나야 합니다.
일치하도록 줄을 긋습니다.

[n]?
과 동일 /, 기록을 통해 앞으로 검색한다는 점을 제외하고.

[n]n 검색 n마지막 검색 문자열의 th 발생; 검색의 방향
마지막 검색과 동일합니다.

[n]N 검색 n마지막 검색 문자열의 th 발생; 검색의 방향
마지막 검색의 반대입니다.

ANSI-CurUp, PC-PgUp
다음과 같이 줄 시작 부분부터 현재 커서 위치까지 문자를 가져옵니다.
문자열을 검색하고 이 항목으로 시작하는 줄에 대해 역방향 기록 검색을 수행합니다.
끈; 커서 위치를 유지하십시오. 이것은 삽입 모드에서만 작동하고 유지합니다.
사용하도록 설정되었습니다.

명령 편집

[n]a 텍스트 추가 n 타임스; 현재 위치 바로 다음에 삽입 모드로 들어갑니다. 그만큼
추가는 명령 모드가 다시 입력되는 경우에만 복제됩니다. 사용.

[n]A 동일 a, 줄 끝에 추가되는 것을 제외하고.

[n]i 텍스트 삽입 n 타임스; 현재 위치에서 삽입 모드로 들어갑니다. 삽입
명령 모드가 다시 입력되는 경우에만 복제됩니다. 사용.

[n]I 동일 i, 공백이 아닌 첫 번째 문자 바로 앞에서 삽입이 수행되는 경우를 제외하고.

[n]s 다음으로 대체 n 문자(즉, 문자를 삭제하고 삽입으로 이동)
방법).

S 전체 라인을 대체합니다. 공백이 아닌 첫 번째 문자부터 끝까지의 모든 문자
행이 삭제되고 삽입 모드로 들어갑니다.

[n]c이동 cmd
현재 위치에서 결과 위치로 변경 n 이동 cmds (즉
표시된 영역을 삭제하고 삽입 모드로 이동); 만약에 이동 cmd is c라인
공백이 아닌 첫 번째 문자부터 시작하여 변경됩니다.

C 현재 위치에서 줄 끝까지 변경(예: 줄 끝으로 삭제)
줄을 입력하고 삽입 모드로 들어갑니다).

[n]x 다음 삭제 n 자.

[n]X 이전 삭제 n 자.

D 줄 끝까지 삭제합니다.

[n]d이동 cmd
현재 위치에서 결과 위치까지 삭제 n 이동 cmds;
이동 cmd 이동 명령(위 참조)이거나 d, 이 경우 현재 줄은
삭제됨

[n]rc 다음 교체 n 캐릭터가 있는 캐릭터 c.

[n]R 교체하십시오. 삽입 모드로 들어가지만 삽입하는 대신 기존 문자를 덮어씁니다.
기존 캐릭터 전. 교체가 반복됩니다 n 시간.

[n]~ 다음의 대소문자 변경 n 자.

[n]y이동 cmd
현재 위치에서 결과 위치로 Yank n 이동 cmds 안으로
잡아당기기 버퍼; 만약에 이동 cmd is y, 전체 라인이 당겨집니다.

Y 현재 위치에서 줄 끝까지 잡아당깁니다.

[n]p 현재 위치 바로 뒤에 yank 버퍼의 내용을 붙여넣습니다. n 시간.

[n]P 동일 p, 버퍼가 현재 위치에 붙여넣어지는 것을 제외하고.

기타 vi 명령

^J와 ^M
현재 줄은 셸에서 읽고 구문 분석하고 실행합니다.

^L과 ^R
현재 줄을 다시 그립니다.

[n]. 마지막 편집 명령 다시 실행 n 시간.

u 마지막 편집 명령을 실행 취소합니다.

U 현재 줄에 적용된 모든 변경 사항을 실행 취소합니다.

PC Home, End, Del 및 커서 키
삽입 모드와 명령 모드 모두에서 예상대로 이동합니다.

intr종료
인터럽트 및 종료 터미널 문자로 인해 현재 행이 삭제되고
인쇄할 새 프롬프트.

onworks.net 서비스를 사용하여 mksh-static 온라인 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

  • 1
    딥 클린
    딥 클린
    모든 빌드를 중단시키는 Kotlin 스크립트
    Gradle/Android 프로젝트의 캐시.
    Gradle 또는 IDE에서 허용할 때 유용합니다.
    아래에. 스크립트가 테스트되었습니다.
    맥OS이지만...
    다운로드
  • 2
    이클립스 체크스타일 플러그인
    이클립스 체크스타일 플러그인
    이클립스 체크스타일 플러그인
    Checkstyle Java 코드 통합
    Eclipse IDE로 감사합니다. 그만큼
    플러그인은 실시간 피드백을 제공합니다.
    viol에 대한 사용자...
    Eclipse 체크스타일 플러그인 다운로드
  • 3
    AstrOrzPlayer
    AstrOrzPlayer
    AstrOrz Player는 무료 미디어 플레이어입니다.
    소프트웨어, 부품은 WMP 및 VLC 기반입니다. 그만큼
    플레이어는 미니멀한 스타일로,
    XNUMX개 이상의 테마 색상과
    B ...
    AstrOrzPlayer 다운로드
  • 4
    무비스타트
    무비스타트
    Kodi Movistar+ TV는 XBMC/용 애드온입니다.
    Kodi que allowede disponer de un 유엔
    IPTV 서비스 디코더 디코더
    Movistar 통합 en uno de los
    미디어 센터 엄마...
    다운로드
  • 5
    코드 :: 블록
    코드 :: 블록
    Code::Blocks는 무료 오픈 소스입니다.
    크로스 플랫폼 C, C++ 및 Fortran IDE
    가장 까다로운 요구 사항을 충족하도록 제작
    사용자의. 그것은 매우 설계
    연장...
    다운로드 코드::블록
  • 6
    가운데
    가운데
    고급 Minecraft 인터페이스 중 또는 고급
    데이터/구조 추적은
    Minecraft 개요 표시
    실제로 생성하지 않고 그것
    할 수있다 ...
    가운데 다운로드
  • 더»

Linux 명령

Ad