영어프랑스어스페인어

Ad


온웍스 파비콘

dash - 클라우드 온라인

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

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

프로그램:

이름


대시 — 명령 인터프리터(쉘)

개요


대시 [-aCefnuvxIimqVEbp] [+aCefnuvxIimqVEbp] [-o OPTION_NAME] [+o OPTION_NAME]
[명령 파일 [논의 ...]]
대시 -c [-aCefnuvxIimqVEbp] [+aCefnuvxIimqVEbp] [-o OPTION_NAME] [+o OPTION_NAME]
명령_문자열 [명령 이름 [논의 ...]]
대시 -s [-aCefnuvxIimqVEbp] [+aCefnuvxIimqVEbp] [-o OPTION_NAME] [+o OPTION_NAME]
[논의 ...]

기술


대시 시스템의 표준 명령 해석기입니다. 의 현재 버전 대시
POSIX 1003.2 및 1003.2a 사양에 맞게 변경하는 과정
껍질. 이 버전에는 일부 측면에서 유사하게 보이게 하는 많은 기능이 있습니다.
Korn 쉘이지만 Korn 쉘 복제가 아닙니다(참조 KSH(1)). 에서 지정한 기능만
POSIX와 몇 가지 Berkeley 확장이 이 셸에 통합됩니다. 이 사람
이 페이지는 셸의 튜토리얼이나 완전한 사양이 아닙니다.

살펴보기
쉘은 파일이나 터미널에서 행을 읽고 해석하는 명령입니다.
일반적으로 다른 명령을 실행합니다. 사용자가 로그인할 때 실행되는 프로그램입니다.
사용자가 다른 쉘을 선택할 수 있지만 (1) 명령).
쉘은 흐름 제어 구조가 있는 언어를 구현합니다.
내장된 히스토리 및 데이터 저장 외에도 다양한 기능을 제공합니다.
라인 편집 기능. 그것은 대화식 사용을 돕기 위해 많은 기능을 통합하고 있습니다
해석 언어가 대화형 언어와 비 대화형 언어 모두에 공통적이라는 장점
(쉘 스크립트)를 사용합니다. 즉, 명령을 실행 중인 쉘에 직접 입력하거나
파일에 넣고 파일을 쉘에서 직접 실행할 수 있습니다.

기도
인수가 없고 쉘의 표준 입력이 터미널에 연결된 경우(또는
경우 -i 플래그가 설정됨), -c 옵션이 없으면 쉘로 간주됩니다.
대화형 쉘. 대화형 쉘은 일반적으로 각 명령과 핸들 전에 프롬프트를 표시합니다.
프로그래밍 및 명령 오류는 서로 다릅니다(아래 설명 참조). 처음 시작할 때,
쉘은 인수 0을 검사하고 대시 '-'로 시작하면 쉘도 인수로 간주됩니다.
로그인 쉘. 이것은 일반적으로 사용자가 처음 로그인할 때 시스템에서 자동으로 수행됩니다.
로그인 셸은 먼저 파일에서 명령을 읽습니다. / etc / 프로필.윤곽 그들이 존재한다면.
환경 변수 ENV가 대화식 셸에 진입할 때 설정되거나
.윤곽 로그인 쉘의 경우 쉘은 다음으로 ENV에 명명된 파일에서 명령을 읽습니다.
따라서 사용자는 로그인 시에만 실행되어야 하는 명령을
.윤곽 파일 및 ENV 내부의 모든 대화형 쉘에 대해 실행되는 명령
파일. ENV 변수를 일부 파일로 설정하려면 .윤곽 of
홈 디렉토리

환경=$HOME/.shinit; 수출 ENV

".shinit"를 원하는 파일 이름으로 대체합니다.

옵션 외에 명령줄 인수가 지정된 경우 쉘은 다음을 처리합니다.
명령을 읽을 파일(쉘 스크립트)의 첫 번째 인수 및
나머지 인수는 쉘의 위치 매개변수로 설정됩니다($1, $2 등).
그렇지 않으면 쉘은 표준 입력에서 명령을 읽습니다.

논의 명부 처리
해당 이름이 있는 모든 단일 문자 옵션을 인수로 사용할 수 있습니다.
~로 -o 옵션. 세트 -o 이름은 단일 문자 옵션 옆에 제공됩니다.
아래 설명. 대시 "-"를 지정하면 옵션이 켜지고 더하기 "+"를 사용합니다.
옵션을 비활성화합니다. 다음 옵션은 명령줄에서 또는 다음을 사용하여 설정할 수 있습니다. 세트
내장(나중에 설명).

-a 수출 할당된 모든 변수를 내보냅니다.

-c 에서 명령 읽기 명령_문자열 피연산자 대신
표준 입력. 특수 매개변수 0은 다음에서 설정됩니다.
명령 이름 피연산자 및 위치 매개변수($1, $2 등)
나머지 인수 피연산자에서 설정됩니다.

-C 노클로버 기존 파일을 ">"로 덮어쓰지 마십시오.

-e 실수 대화형이 아닌 경우 테스트되지 않은 명령이 실패하면 즉시 종료합니다.
명령의 종료 상태는 다음과 같은 경우 명시적으로 테스트된 것으로 간주됩니다.
명령은 제어하는 ​​데 사용됩니다. if, ELIF, 동안까지; 또는 만약
명령은 "&&" 또는 "||"의 왼쪽 피연산자입니다. 운영자.

-f 노글롭 경로 이름 확장을 비활성화합니다.

-n noexec 대화형이 아닌 경우 명령을 읽고 실행하지 마십시오. 이것은
쉘 스크립트의 구문을 확인하는 데 유용합니다.

-u 명사 확장을 시도할 때 표준 오류에 메시지 쓰기
설정되지 않은 변수, 그리고 쉘이 대화형이 아닌 경우 종료
바로.

-v 말 수가 많은 쉘은 읽을 때 입력을 표준 오류에 씁니다. 유용한
디버깅을 위해.

-x 엑스트레이스 각 명령을 표준 오류 앞에 씁니다('+'가 앞에 옴).
실행됩니다. 디버깅에 유용합니다.

-I 무시하다 대화형일 때 입력에서 EOF를 무시합니다.

-i 대화형 쉘이 대화식으로 작동하도록 합니다.

-l 대시가 로그인 셸로 호출된 것처럼 작동하도록 합니다.

-m 모니터 작업 제어를 켭니다(대화형일 때 자동으로 설정).

-s 표준 표준 입력에서 명령 읽기(파일이 없으면 자동으로 설정됨
인수가 있음). 이 옵션은 다음에 설정하면 효과가 없습니다.
쉘이 이미 실행을 시작했습니다(예: 세트).

-V vi 내장 활성화 vi(1) 명령줄 편집기(비활성화 -E 그것이 있다면
설정).

-E 이맥스 내장 활성화 이맥스(1) 명령줄 편집기(비활성화 -V 그 경우
설정되었습니다).

-b 통보 백그라운드 작업 완료에 대한 비동기식 알림을 활성화합니다.
(4.4alpha의 경우 구현되지 않음)

-p priv 유효 uid가 uid와 일치하지 않으면 재설정을 시도하지 마십시오. 이것
setuid 루트의 잘못된 사용을 방지하기 위해 기본적으로 설정되어 있지 않습니다.
통해 프로그램 체계(3) 또는 Popen(3).

어휘 Structure
쉘은 파일에서 줄 단위로 입력을 읽고 단어로 나눕니다.
공백(공백 및 탭) 및 특정 문자 시퀀스에서
"연산자"라는 쉘. 연산자에는 두 가지 유형이 있습니다. 제어 연산자와
리디렉션 연산자(그 의미는 나중에 논의됨). 다음은 연산자 목록입니다.

제어 연산자:
& && ( ) ; ;; | ||

리디렉션 연산자:
< > >| << >> <& >& <<- <>

인용
따옴표는 특정 문자나 단어의 특별한 의미를 셸로 제거하는 데 사용되며,
연산자, 공백 또는 키워드와 같은 인용에는 세 가지 유형이 있습니다.
작은 따옴표, 일치하는 큰 따옴표 및 백슬래시.

백 슬래시
백슬래시는 다음 문자를 제외하고 문자 그대로의 의미를 유지합니다.
⟨개행⟩. ⟨newline⟩ 앞에 있는 백슬래시는 줄 연속으로 처리됩니다.

하나의 인용 부호
작은따옴표로 문자를 묶으면 모든 문자의 리터럴 의미가 유지됩니다.
(작은 따옴표를 제외하고 작은 따옴표를 작은 따옴표로 묶는 문자열에 넣을 수 없음).

인용 부호
큰따옴표로 문자를 묶으면 모든 문자의 리터럴 의미가 유지됩니다.
달러 기호($), 역따옴표(`) 및 역슬래시(\)는 제외됩니다. 큰따옴표 안의 백슬래시
역사적으로 이상하고 다음 문자만 인용하는 역할을 합니다.
$ ` " \ .
그렇지 않으면 그대로 유지됩니다.

예약
예약어는 쉘에 특별한 의미를 가지고 있는 단어로,
줄의 시작과 제어 연산자 뒤. 다음은 예약어입니다.

! elif fi 동안 케이스
그 외 { }
esac 때까지 완료

그들의 의미는 나중에 논의됩니다.

별칭
별칭은 다음을 사용하여 설정된 이름 및 해당 값입니다. 별명(1) 내장 명령. 언제든지
예약어가 발생할 수 있으며(위 참조) 예약어 확인 후 쉘
단어가 별칭과 일치하는지 확인합니다. 그렇다면 입력에서 대체합니다.
값으로 스트리밍합니다. 예를 들어 값이 "ls"인 "lf"라는 별칭이 있는 경우
-F"를 입력하고 다음을 입력합니다.

lf foobar ⟨리턴⟩

될 것이다

ls -F 푸바 ⟨리턴⟩

별칭은 순진한 사용자가 명령에 대한 약칭을 만들 수 있는 편리한 방법을 제공합니다.
인수를 사용하여 함수를 만드는 방법을 배워야 합니다. 그들은 또한 생성하는 데 사용할 수 있습니다
어휘적으로 모호한 코드. 이 사용은 권장되지 않습니다.

명령
쉘은 언어에 따라 읽은 단어를 해석합니다.
이 매뉴얼 페이지의 범위를 벗어납니다(POSIX 1003.2 문서의 BNF 참조).
기본적으로 행을 읽고 행의 첫 번째 단어가
operator)가 예약어가 아닌 경우 쉘이 간단한 명령을 인식한 것입니다.
그렇지 않으면 복잡한 명령이나 기타 특수 구조가 인식되었을 수 있습니다.

단순, 간단, 편리 명령
간단한 명령이 인식되면 쉘은 다음 작업을 수행합니다.

1. "name=value" 형식의 선행 단어는 제거되고 할당됩니다.
간단한 명령의 환경. 리디렉션 연산자 및 해당 인수(
아래에 설명됨) 처리를 위해 제거되고 저장됩니다.

2. 나머지 단어는 "확장" 섹션에 설명된 대로 확장됩니다.
첫 번째 나머지 단어는 명령 이름으로 간주되며 명령은 다음과 같습니다.
위치. 나머지 단어는 명령의 인수로 간주됩니다. 그렇지 않은 경우
명령 이름이 나온 다음 "name=value" 변수 할당이 인식되었습니다.
항목 1은 현재 쉘에 영향을 줍니다.

3. 리디렉션은 다음 섹션에 설명된 대로 수행됩니다.

리디렉션
리디렉션은 명령이 입력을 읽거나 출력을 보내는 위치를 변경하는 데 사용됩니다. 에
일반적으로 리디렉션은 파일에 대한 기존 참조를 열거나 닫거나 복제합니다. NS
리디렉션에 사용되는 전체 형식은 다음과 같습니다.

[엔] 재배열 파일

어디에 재배열 앞에서 언급한 리디렉션 연산자 중 하나입니다. 다음은
가능한 리디렉션 목록. [n]은 '3'('[3]'이 아님)에서와 같이 선택적 숫자입니다.
파일 디스크립터를 참조합니다.

[n]> file 표준 출력(또는 n)을 파일로 리디렉션합니다.

[n]>| 파일 동일하지만 재정의 -C 옵션을 선택합니다.

[n]>> file 표준 출력(또는 n)을 파일에 추가합니다.

[n]< file 파일에서 표준 입력(또는 n)을 리디렉션합니다.

[n1]<&n2 파일 설명자 n1에서 표준 입력(또는 n2)이 중복되었습니다.

[n]<&- 표준 입력(또는 n)을 닫습니다.

[n1]>&n2 표준 출력(또는 n1)을 n2에 복제합니다.

[n]>&- 표준 출력(또는 n)을 닫습니다.

[n]<> 파일 표준 입력(또는 n)에서 읽고 쓰기 위해 파일을 엽니다.

다음 리디렉션을 종종 "here-document"라고 합니다.

[n]<< 구분자
여기 문서 텍스트 ...
구분자

구분 기호까지의 연속 행에 있는 모든 텍스트는 저장되어 사용자에게 제공됩니다.
표준 입력에 대한 명령 또는 지정된 경우 파일 설명자 n. 구분 기호가 다음과 같은 경우
초기 줄에 지정된 따옴표가 있으면 here-doc-text가 문자 그대로 처리됩니다.
그렇지 않으면 텍스트에 매개변수 확장, 명령 대체 및 산술이 적용됩니다.
확장("확장" 섹션에 설명됨). 연산자가 "<<-"인 경우
"<<"의 경우 here-doc-text의 선행 탭이 제거됩니다.

검색 실행
세 가지 유형의 명령이 있습니다: 쉘 기능, 내장 명령 및 일반 프로그램 --
명령은 그 순서대로 (이름으로) 검색됩니다. 그들은 각각 실행됩니다
다른 방법.

쉘 함수가 실행될 때 모든 쉘 위치 매개변수($0 제외,
변경되지 않은 상태로 유지됨)은 쉘 함수의 인수로 설정됩니다. 인 변수
명령의 환경에 명시적으로 배치됩니다(앞에 할당함으로써
함수 이름)은 함수에 대해 로컬로 만들어지고 주어진 값으로 설정됩니다. 그런 다음
함수 정의에 주어진 명령이 실행됩니다. 위치 매개변수는
명령이 완료되면 원래 값으로 복원됩니다. 이 모든 것은 내에서 발생합니다.
현재 쉘.

셸 내장은 새 프로세스를 생성하지 않고 셸 내부에서 실행됩니다.

그렇지 않고 명령 이름이 함수 또는 내장과 일치하지 않으면 명령이 검색됩니다.
파일 시스템의 일반 프로그램으로 사용할 수 있습니다(다음 섹션에서 설명). 언제
일반 프로그램이 실행되고 쉘이 프로그램을 실행하고 인수를 전달하고
프로그램에 대한 환경. 프로그램이 일반 실행 파일이 아닌 경우(즉,
ASCII 표현이 "#!"인 "매직 넘버"로 시작하지 않으므로 집행하다(2)
그러면 ENOEXEC가 반환됨) 쉘은 서브쉘에서 프로그램을 해석합니다. 자식 쉘
이 경우 자체를 다시 초기화하여 효과가 마치 새 셸이
해시된 명령의 위치를 ​​제외하고 임시 셸 스크립트를 처리하기 위해 호출됩니다.
부모 쉘에 있는 것은 자식이 기억할 것입니다.

이 문서의 이전 버전과 소스 코드 자체가 오해의 소지가 있고
간헐적으로 "쉘 프로시저"로 매직 넘버가 없는 쉘 스크립트를 참조하십시오.

경로 검색
명령을 찾을 때 쉘은 먼저 쉘 기능이 있는지 확인합니다.
이름. 그런 다음 해당 이름의 내장 명령을 찾습니다. 내장 명령을 찾을 수 없는 경우,
두 가지 중 하나가 발생합니다.

1. 슬래시가 포함된 명령 이름은 검색을 수행하지 않고 단순히 실행됩니다.

2. 쉘은 명령에 대해 PATH의 각 항목을 차례로 검색합니다. 경로의 값
변수는 콜론으로 구분된 일련의 항목이어야 합니다. 각 항목은 다음으로 구성됩니다.
디렉토리 이름. 현재 디렉토리는 암시적으로 공백으로 표시될 수 있습니다.
디렉토리 이름 또는 명시적으로 단일 마침표로 지정합니다.

명령 출구 Status
각 명령에는 다른 쉘 명령의 동작에 영향을 줄 수 있는 종료 상태가 있습니다.
패러다임은 명령이 정상 또는 성공의 경우 XNUMX으로 종료되고 XNUMX이 아닌 경우 종료된다는 것입니다.
실패, 오류 또는 잘못된 표시. 각 명령에 대한 매뉴얼 페이지는 다음을 표시해야 합니다.
다양한 종료 코드와 그 의미. 또한 내장 명령은 exit를 반환합니다.
실행된 쉘 함수와 마찬가지로 코드.

명령이 완전히 변수 할당으로 구성된 경우 명령의 종료 상태
있는 경우 마지막 명령 대체의 것입니다. 그렇지 않으면 0입니다.

복잡한 명령
복잡한 명령은 제어 연산자 또는 예약된 간단한 명령의 조합입니다.
단어, 함께 더 큰 복잡한 명령을 만듭니다. 보다 일반적으로 명령은 다음 중 하나입니다.
다음 :

· 간단한 명령

· 관로

· 목록 또는 복합 목록

· 복합 명령

· 기능 정의

달리 명시되지 않는 한 명령의 종료 상태는 마지막 단순 명령의 종료 상태입니다.
명령에 의해 실행됩니다.

파이프 라인
파이프라인은 제어 연산자 |로 구분된 하나 이상의 명령 시퀀스입니다. NS
마지막 명령을 제외한 모든 표준 출력은 다음 명령의 표준 입력에 연결됩니다.
명령. 마지막 명령의 표준 출력은 평소와 같이 셸에서 상속됩니다.

파이프라인 형식은 다음과 같습니다.

[!] 명령1 [| 명령2 ...]

command1의 표준 출력은 command2의 표준 입력에 연결됩니다. NS
명령의 표준 입력, 표준 출력 또는 둘 다 할당된 것으로 간주됩니다.
일부인 리디렉션 연산자가 지정한 리디렉션 전의 파이프라인
명령.

파이프라인이 백그라운드에 없으면(나중에 논의됨), 쉘은 모든 명령을 기다립니다.
가능합니다.

예약어라면 ! 파이프라인보다 선행하지 않는 경우 종료 상태는 다음의 종료 상태입니다.
파이프라인에 지정된 마지막 명령입니다. 그렇지 않으면 종료 상태는 논리적 NOT입니다.
마지막 명령의 종료 상태. 즉, 마지막 명령이 XNUMX을 반환하면 종료됩니다.
상태는 1입니다. 마지막 명령이 XNUMX보다 큰 값을 반환하면 종료 상태는 XNUMX입니다.

표준 입력 또는 표준 출력 또는 둘 다의 파이프라인 할당이 전에 발생하기 때문에
리디렉션, 리디렉션으로 수정할 수 있습니다. 예를 들어:

$ 명령1 2>&1 | 명령2

command1의 표준 출력과 표준 오류를 모두 표준 입력으로 보냅니다.
명령2.

NS ; 또는 ⟨newline⟩ 종결자는 선행 AND-OR-목록(다음에 설명됨)이 실행되도록 합니다.
순차적으로; &는 선행 AND-OR 목록의 비동기 실행을 유발합니다.

일부 다른 셸과 달리 파이프라인의 각 프로세스는 호출하는
쉘(쉘 내장이 아닌 경우 현재 쉘에서 실행되지만
환경에 미치는 영향은 모두 지워집니다).

배경 명령 -- &
명령이 제어 연산자 앰퍼샌드(&)에 의해 종료되면 쉘은 다음을 실행합니다.
명령을 비동기적으로 -- 즉, 쉘은 명령이 완료되기 전에 기다리지 않습니다.
다음 명령을 실행합니다.

백그라운드에서 명령을 실행하는 형식은 다음과 같습니다.

명령1 & [명령2 & ...]

쉘이 대화형이 아닌 경우 비동기 명령의 표준 입력은 다음으로 설정됩니다.
/ dev / null.

기울기 -- 일반적으로 회화
목록은 줄 바꿈, 세미콜론 또는
앰퍼샌드, 선택적으로 이 세 문자 중 하나로 종료됩니다. a의 명령
목록은 작성된 순서대로 실행됩니다. 명령 다음에 앰퍼샌드가 오는 경우
쉘은 명령을 시작하고 즉시 다음 명령으로 진행합니다. 그렇지 않으면
다음 명령으로 진행하기 전에 명령이 종료될 때까지 기다립니다.

단락 명부 연산자
"&&" 및 "||" AND-OR 목록 연산자입니다. "&&"는 첫 번째 명령을 실행한 다음 실행합니다.
첫 번째 명령의 종료 상태가 XNUMX인 경우 두 번째 명령입니다. "||" 비슷하지만
첫 번째 명령의 종료 상태가 XNUMX이 아닌 경우 두 번째 명령을 실행합니다. "&&" 그리고
"||" 둘 다 같은 우선 순위를 갖습니다.

흐름 제어 구성 -- 만약, 동안, 에 대한, 케이스
if 명령의 구문은 다음과 같습니다.

리스트라면
그런 다음 목록
[ 엘리프 목록
그런 다음 목록] ...
[ 기타 목록 ]
fi

while 명령의 구문은 다음과 같습니다.

동안 목록
할 일 목록


첫 번째 목록의 종료 상태가 XNUMX인 동안 두 목록이 반복적으로 실행됩니다. NS
until 명령은 비슷하지만 while 대신에 until이라는 단어가 있어서 다음을 수행합니다.
첫 번째 목록의 종료 상태가 XNUMX이 될 때까지 반복합니다.

for 명령의 구문은 다음과 같습니다.

변수 [ in [ 단어 ... ] ]
할 일 목록


다음 단어 in 확장된 다음 목록이 다음을 사용하여 반복적으로 실행됩니다.
각 단어에 차례로 변수를 설정합니다. 단어 ...에서 생략하는 것은 "$@"에서와 동일합니다.

break 및 continue 명령의 구문은 다음과 같습니다.

휴식 [ 숫자 ]
계속 [ 숫자 ]

Break는 가장 안쪽에 있는 for 또는 while 루프를 종료합니다. 계속 다음으로 계속
가장 안쪽 루프의 반복. 이들은 내장 명령으로 구현됩니다.

case 명령의 구문은 다음과 같습니다.

케이스 단어
[(]패턴) 목록 ;;
...
그 C

패턴은 실제로 하나 이상의 패턴일 수 있습니다(참조 껍질 패턴 나중에 설명),
"|"로 구분 문자. 패턴 앞의 "(" 문자는 선택 사항입니다.

그룹화 명령 함께
명령은 다음 중 하나를 작성하여 그룹화할 수 있습니다.

(명부)

or

{ 목록; }

이들 중 첫 번째는 서브쉘에서 명령을 실행합니다. 로 그룹화된 내장 명령
(목록)은 현재 쉘에 영향을 미치지 않습니다. 두 번째 형식은 다른 쉘을 분기하지 않으므로 다음과 같습니다.
약간 더 효율적입니다. 이 방법으로 명령을 그룹화하면 명령을 리디렉션할 수 있습니다.
하나의 프로그램인 것처럼 출력:

{ printf "안녕하세요" ; printf " 세계\n" ; } > 인사말

"}"는 제어 연산자(여기서는 ";") 다음에 와야 하므로 다음과 같이 인식됩니다.
예약어이고 다른 명령 인수가 아닙니다.

기능
함수 정의의 구문은 다음과 같습니다.

이름() 명령

함수 정의는 실행 가능한 명령문입니다. 실행될 때 이름이 지정된 함수를 설치합니다.
이름을 지정하고 종료 상태를 XNUMX으로 반환합니다. 명령은 일반적으로 다음 사이에 묶인 목록입니다.
"{" 그리고 "}".

변수는 로컬 명령을 사용하여 함수에 대해 로컬로 선언될 수 있습니다. 이것은
함수의 첫 번째 문장으로 나타나며 구문은 다음과 같습니다.

로컬 [변수 | -] ...

로컬은 내장 명령으로 구현됩니다.

변수를 로컬로 만들면 초기 값과 내보내기 및 읽기 전용 플래그를 상속합니다.
주변 범위에 같은 이름의 변수가 있는 경우 그렇지 않으면,
변수는 초기에 설정되지 않습니다. 쉘은 동적 범위 지정을 사용하므로
변수 x는 함수 f에 대해 로컬이고 함수 g를 호출하고 변수 x에 대한 참조
g 내부에서 만든 것은 전역 변수가 아니라 f 내부에 선언된 변수 x를 참조합니다.
x라는 이름.

로컬로 만들 수 있는 유일한 특수 매개변수는 "-"입니다. "-"를 모든 셸에서 로컬로 만들기
함수 내에서 set 명령을 통해 변경된 옵션은 원래 상태로 복원됩니다.
함수가 반환될 때 원래 값.

return 명령의 구문은 다음과 같습니다.

반환 [종료 상태]

현재 실행 중인 함수를 종료합니다. 반환은 내장 명령으로 구현됩니다.

변수 파라미터
쉘은 매개변수 세트를 유지보수합니다. 이름으로 표시되는 매개변수를
변하기 쉬운. 쉘은 시작할 때 모든 환경 변수를 쉘로 바꿉니다.
변수. 다음 형식을 사용하여 새 변수를 설정할 수 있습니다.

이름 = 값

사용자가 설정한 변수의 이름은 알파벳, 숫자, 숫자로만 구성된 이름이어야 합니다.
밑줄 - 첫 번째는 숫자가 아니어야 합니다. 매개변수는 다음으로 표시할 수도 있습니다.
아래에 설명된 숫자 또는 특수 문자.

위치 파라미터
위치 매개변수는 숫자(n > 0)로 표시되는 매개변수입니다. 쉘은 다음을 설정합니다.
처음에는 셸 이름 뒤에 오는 명령줄 인수의 값으로
스크립트. NS 세트 내장을 사용하여 설정하거나 재설정할 수도 있습니다.

이달의 스페셜 파라미터
특수 매개변수는 다음 특수 문자 중 하나로 표시되는 매개변수입니다. NS
매개변수의 값은 해당 문자 옆에 나열됩니다.

* 하나에서 시작하여 위치 매개변수로 확장됩니다. 확장할 때
큰 따옴표로 묶인 문자열 내에서 발생하며 단일 필드로 확장됩니다.
IFS 변수의 첫 번째 문자로 구분된 각 매개변수의 값,
또는 IFS가 설정되지 않은 경우 ⟨공백⟩으로 표시됩니다.

@ XNUMX부터 시작하여 위치 매개변수로 확장합니다. 확장할 때
큰따옴표 내에서 발생하는 경우 각 위치 매개변수는 별도의 매개변수로 확장됩니다.
논쟁. 위치 매개변수가 없는 경우 @의 확장은 다음을 생성합니다.
@가 큰따옴표로 묶인 경우에도 인수가 XNUMX입니다. 이것이 기본적으로 의미하는 바는
예를 들어 $1이 "abc"이고 $2가 "def ghi"이면 "$@"가 두 개로 확장됩니다.
인수 :

"abc" "데프 기"

# 위치 매개변수의 수로 확장합니다.

? 가장 최근 파이프라인의 종료 상태로 확장합니다.

- (하이픈) 현재 옵션 플래그로 확장됩니다(단일 문자 옵션 이름
집합 내장에 의해 호출 시 지정된 대로 문자열로 연결됨)
명령 또는 쉘에 의해 암시적으로.

$ 호출된 셸의 프로세스 ID로 확장합니다. 서브쉘은 동일하게 유지
$의 값을 부모로 사용합니다.

! 에서 실행된 가장 최근의 백그라운드 명령의 프로세스 ID로 확장됩니다.
현재 쉘. 파이프라인의 경우 프로세스 ID는 마지막 명령의 ID입니다.
파이프 라인에서.

0(영) 셸 또는 셸 스크립트의 이름으로 확장합니다.

워드 확장
이 절은 단어에 대해 수행되는 다양한 확장을 설명합니다. 전부는 아니다
확장은 나중에 설명하는 것처럼 모든 단어에 대해 수행됩니다.

물결표 확장, 매개변수 확장, 명령 대체, 산술 확장 및
단일 단어 내에서 발생하는 따옴표 제거는 단일 필드로 확장됩니다. 필드뿐이다
단일 단어에서 여러 필드를 만들 수 있는 분할 또는 경로 이름 확장. NS
이 규칙에 대한 한 가지 예외는 특수 매개변수 @의 확장입니다.
위에서 설명한 대로 따옴표.

단어 확장 순서는 다음과 같습니다.

1. 물결표 확장, 매개변수 확장, 명령 대체, 산술 확장(이러한
모두 동시에 발생).

2. 필드 분할은 IFS 변수가
없는.

3. 경로 이름 확장(설정되지 않은 경우 -f 시행 중).

4. 견적 제거.

$ 문자는 매개변수 확장, 명령 대체 또는
산술 평가.

틸데 확장 (대체 a 사용자 예배 규칙서)
따옴표 없는 물결표 문자(~)로 시작하는 단어는 물결표 확장을 받습니다. 모두
슬래시(/) 또는 단어 끝까지의 문자는 사용자 이름으로 처리되며
사용자의 홈 디렉토리로 대체됩니다. 사용자 이름이 누락된 경우(예: ~/푸바)
물결표는 다음 값으로 대체됩니다. 변수(현재 사용자의 홈 디렉토리).

매개 변수 확장
매개변수 확장 형식은 다음과 같습니다.

${표현식}

여기서 expression은 일치하는 "}"까지 모든 문자로 구성됩니다. 로 이스케이프된 모든 "}"
백슬래시 또는 따옴표로 묶인 문자열 내, 포함된 산술 확장의 문자,
명령 대체 및 변수 확장은 일치 여부를 결정할 때 검사되지 않습니다.
"}".

매개변수 확장의 가장 간단한 형식은 다음과 같습니다.

${매개변수}

매개변수의 값이 있는 경우 대체됩니다.

매개변수 이름이나 기호는 중괄호로 묶을 수 있으며 다음을 제외하고는 선택 사항입니다.
둘 이상의 숫자가 있는 위치 매개변수 또는 매개변수 다음에 문자가 오는 경우
이름의 일부로 해석될 수 있습니다. 내부에서 매개변수 확장이 발생하는 경우
큰따옴표:

1. 확장 결과에 대해서는 경로명 확장을 하지 않는다.

2. 확장 결과에 대해서는 필드 분할이 수행되지 않습니다.
@.

또한 다음 형식 중 하나를 사용하여 매개변수 확장을 수정할 수 있습니다.

${parameter:-word} 기본값을 사용합니다. 매개변수가 설정되지 않거나 null인 경우 확장
단어가 대체됩니다. 그렇지 않으면 매개변수의 값이 대체됩니다.

${parameter:=word} 기본값을 할당합니다. 매개변수가 설정되지 않거나 null인 경우 확장
매개변수에 워드가 할당됩니다. 모든 경우에 최종 값은
매개변수가 대체됩니다. 위치 매개변수가 아닌 변수만
또는 특수 매개변수를 이러한 방식으로 할당할 수 있습니다.

${parameter:?[word]} Null이거나 설정되지 않은 경우 오류를 나타냅니다. 매개변수가 설정되지 않거나 null인 경우
단어의 확장(또는 단어가 다음과 같은 경우 설정되지 않았음을 나타내는 메시지
생략)은 표준 오류에 기록되고 쉘은 a와 함께 종료됩니다.
XNUMX이 아닌 종료 상태. 그렇지 않으면 매개변수의 값은
대체. 대화형 쉘은 종료할 필요가 없습니다.

${parameter:+word} 대체 값을 사용합니다. 매개변수가 설정되지 않았거나 null인 경우 null은
치환; 그렇지 않으면 단어의 확장이 대체됩니다.

이전에 표시된 매개변수 확장에서 형식에 콜론을 사용하면
설정되지 않았거나 null인 매개변수를 테스트합니다. 결장을 생략하면
설정되지 않은 매개변수입니다.

${#parameter} 문자열 길이. 매개변수 값의 문자 길이입니다.

다음 XNUMX가지 종류의 매개변수 확장은 하위 문자열 처리를 제공합니다. 에
각 경우, 패턴 일치 표기법(참조 껍질 패턴), 정규식 대신
표기법은 패턴을 평가하는 데 사용됩니다. 매개변수가 * 또는 @이면 결과
확장은 지정되지 않았습니다. 전체 매개변수 확장 문자열을 큰따옴표로 묶기
다음 네 가지 유형의 패턴 문자가 인용되지 않는 반면
중괄호 내에서 문자를 인용하면 이 효과가 있습니다.

${parameter%word} 가장 작은 접미사 패턴을 제거합니다. 단어를 확장하여 생성합니다.
무늬. 그런 다음 매개변수 확장은 매개변수를 생성합니다.
삭제된 패턴과 일치하는 접미사의 가장 작은 부분.

${parameter%%word} 가장 큰 접미사 패턴을 제거합니다. 단어를 확장하여 생성합니다.
무늬. 그런 다음 매개변수 확장은 매개변수를 생성합니다.
삭제된 패턴과 일치하는 접미사의 가장 큰 부분.

${parameter#word} 가장 작은 접두사 패턴을 제거합니다. 단어를 확장하여 생성합니다.
무늬. 그런 다음 매개변수 확장은 매개변수를 생성합니다.
삭제된 패턴과 일치하는 접두사의 가장 작은 부분.

${parameter##word} 가장 큰 접두사 패턴을 제거합니다. 단어를 확장하여 생성합니다.
무늬. 그런 다음 매개변수 확장은 매개변수를 생성합니다.
삭제된 패턴과 일치하는 접두사의 가장 큰 부분.

명령 치환
명령 대체를 사용하면 명령의 출력을 대체할 수 있습니다.
명령 이름 자체. 명령이 다음과 같이 묶인 경우 명령 대체가 발생합니다.

$(명령)

또는 ("역 인용된" 버전):

'명령'

쉘은 서브쉘 환경에서 명령을 실행하여 명령 대체를 확장합니다.
및 명령 대체를 명령의 표준 출력으로 대체하고,
치환의 끝에 하나 이상의 ⟨개행 ⟩의 시퀀스. (임베디드 ⟨개행⟩s
출력이 끝나기 전에 제거되지 않습니다. 그러나 필드 분할 중에
IFS의 가치와 유효한 인용에 따라 ⟨공백⟩으로 번역됩니다.)

산수 확장
산술 확장은 산술 표현식을 평가하는 메커니즘을 제공하고
그 가치를 대체합니다. 산술 확장의 형식은 다음과 같습니다.

$((표현식))

표현식은 내부에 큰 따옴표가 있다는 점을 제외하고는 큰 따옴표로 묶인 것처럼 처리됩니다.
표현식은 특별히 취급되지 않습니다. 쉘은 표현식의 모든 토큰을 확장합니다.
매개변수 확장, 명령 대체 및 따옴표 제거.

다음으로 쉘은 이것을 산술 표현식으로 취급하고 다음 값으로 대체합니다.
표현.

스페이스 버튼 파편 (필드 파편)
매개변수 확장, 명령 대체 및 산술 확장 후 쉘이 스캔합니다.
필드의 큰따옴표에서 발생하지 않은 확장 및 대체 결과
분할 및 여러 필드가 발생할 수 있습니다.

쉘은 IFS의 각 문자를 구분 기호로 취급하고 구분 기호를 사용하여 분할합니다.
필드로의 매개변수 확장 및 명령 대체 결과.

경로명 확장 (파일 성함 세대)
그렇지 않으면 -f 플래그가 설정되면 단어 분할이 완료된 후 파일 이름 생성이 수행됩니다.
완벽한. 각 단어는 슬래시로 구분된 일련의 패턴으로 간주됩니다. 과정
확장의 단어는 이름이 다음과 같은 기존 파일의 이름으로 대체됩니다.
각 패턴을 지정된 패턴과 일치하는 문자열로 대체하여 형성됩니다. 거기
이에 대한 두 가지 제한 사항이 있습니다. 첫째, 패턴은 슬래시가 포함된 문자열과 일치할 수 없으며,
둘째, 패턴은 첫 번째 문자가 없으면 마침표로 시작하는 문자열과 일치할 수 없습니다.
패턴은 기간입니다. 다음 섹션에서는 두 경로 이름에 사용되는 패턴을 설명합니다.
확장과 케이스 명령.

껍질 패턴
패턴은 자신과 일치하는 일반 문자와 메타 문자로 구성됩니다. NS
메타 문자는 "!", "*", "?" 및 "["입니다. 이러한 문자는 다음과 같은 경우 특별한 의미를 잃습니다.
그들은 인용됩니다. 명령 또는 변수 대체가 수행되고 달러 기호 또는
역따옴표가 큰따옴표로 묶이지 않은 경우 변수 값 또는 명령 출력은 다음과 같습니다.
이러한 문자를 스캔하면 메타 문자로 변환됩니다.

별표("*")는 모든 문자열과 일치합니다. 물음표는 모든 단일 항목과 일치합니다.
캐릭터. 왼쪽 대괄호("[")는 문자 클래스를 소개합니다. 캐릭터의 끝
클래스는 ("]")로 표시됩니다. "]"가 없으면 "["가 아닌 "["와 일치합니다.
캐릭터 클래스를 소개합니다. 문자 클래스는 다음 사이의 모든 문자와 일치합니다.
대괄호. 빼기 기호를 사용하여 문자 범위를 지정할 수 있습니다. 캐릭터
느낌표를 첫 번째 문자로 만들어 클래스를 보완할 수 있습니다.
캐릭터 클래스.

문자 클래스에 "]"를 포함하려면 나열된 첫 번째 문자로 만듭니다("!"
어느). 빼기 기호를 포함하려면 나열된 첫 번째 또는 마지막 문자로 만드십시오.

빌트인
이 섹션에서는 몇 가지를 수행해야 하기 때문에 내장된 내장 명령을 나열합니다.
별도의 프로세스로 수행할 수 없는 작업입니다. 이 외에도
효율성을 위해 내장될 수 있는 몇 가지 다른 명령(예: printf(1) 에코(1)
test(1) 등).

:

true 0(true) 종료 값을 반환하는 null 명령입니다.

. 파일
지정된 파일의 명령은 쉘에서 읽고 실행합니다.

별칭 [name[=문자열 ...]]
If 이름=문자열 지정되면 쉘은 별명을 정의합니다 name 가치있는 . 면
다만 name 가 지정되면 별칭 값 name 가 인쇄됩니다. 논거 없이,
전에, 별명 builtin은 정의된 모든 별칭의 이름과 값을 인쇄합니다(참조 별칭).

BG [] ...
지정된 작업(또는 작업이 지정되지 않은 경우 현재 작업)을 계속합니다.
배경입니다.

명령 [-p] [-v] [-V] 명령 [아르헨티나 ...]
지정된 명령을 실행하지만 검색할 때 셸 기능을 무시합니다.
(이것은 내장 함수와 이름이 같은 쉘 함수가 있을 때 유용합니다.
명령.)

-p 모든 표준 찾기를 보장하는 PATH를 사용하여 명령 검색
유용.

-V 명령을 실행하지 말고 명령을 검색하고 해상도를 인쇄하십시오
명령 검색의. 이것은 내장 유형과 동일합니다.

-v 명령을 실행하지 말고 명령을 검색하고 절대값을 인쇄하십시오.
유틸리티의 경로 이름, 내장 기능의 이름 또는 별칭 확장.

cd -

CD [-LP] [예배 규칙서]
지정된 디렉토리(기본값 HOME)로 전환합니다. CDPATH에 대한 항목이
환경 cd 명령 또는 쉘 변수 CDPATH가 설정되고
디렉토리 이름이 슬래시로 시작하지 않으면 CDPATH에 나열된 디렉토리
지정된 디렉토리를 검색합니다. CDPATH의 형식은 다음과 같습니다.
PATH의 것. 단일 대시가 인수로 지정되면 다음으로 대체됩니다.
OLDPWD의 값. NS cd 명령은 해당 디렉토리의 이름을 인쇄합니다.
사용자가 지정한 이름과 다른 경우 실제로 로 전환됩니다. 이것들
CDPATH 메커니즘이 사용되었거나 인수가
단일 대시입니다. NS -P 이 옵션을 사용하면 물리적 디렉토리 구조가 사용됩니다.
즉, 모든 심볼릭 링크는 각각의 값으로 해석됩니다. NS -L 선택권
이전의 효과를 끕니다. -P 옵션을 제공합니다.

에코 [-n] 인수...
공백으로 구분된 인수를 표준 출력에 인쇄합니다. 하지 않는 한 -n
옵션이 있으면 인수 다음에 줄 바꿈이 출력됩니다.

출력 중에 다음 문자 시퀀스 중 하나라도 발견되면
시퀀스가 출력되지 않습니다. 대신 지정된 작업이 수행됩니다.

\b 백스페이스 문자가 출력됩니다.

\c 후속 출력이 억제됩니다. 이것은 일반적으로 마지막에 사용됩니다.
후행 줄 바꿈을 억제하는 마지막 인수 에코 그렇지 않으면
출력.

\f 폼 피드를 출력합니다.

\n 개행 문자를 출력합니다.

\r 캐리지 리턴을 출력합니다.

\t (가로) 탭 문자를 출력합니다.

\v 수직 탭을 출력합니다.

\0숫자
XNUMX에서 XNUMX개의 XNUMX진수로 값이 주어진 문자를 출력합니다. 만약에
숫자가 XNUMX이면 null 문자가 출력됩니다.

\\ 백슬래시를 출력합니다.

다른 모든 백슬래시 시퀀스는 정의되지 않은 동작을 유발합니다.

평가 ...
모든 인수를 공백으로 연결합니다. 그런 다음 명령을 다시 구문 분석하고 실행합니다.

임원 [명령 아르헨티나 ...]
명령을 생략하지 않으면 쉘 프로세스가 지정된 프로그램으로 대체됩니다.
(쉘 내장이나 함수가 아닌 실제 프로그램이어야 함). 모든 리디렉션
전에, 임원 명령은 영구적인 것으로 표시되어 임원
명령이 완료됩니다.

출구 [종료 상태]
셸 프로세스를 종료합니다. 만약에 종료 상태 의 종료 상태로 사용됩니다.
껍질; 그렇지 않으면 이전 명령의 종료 상태가 사용됩니다.

수출 name ...

수출 -p
지정된 이름은 다음 환경에 나타나도록 내보내집니다.
후속 명령. 변수 내보내기를 취소하는 유일한 방법은 설정을 취소하는 것입니다. 껍질
변수 값을 작성하여 내보내는 동시에 설정할 수 있습니다.

내보내기 이름=값

인수가 없으면 export 명령은 내보낸 모든 변수의 이름을 나열합니다. 와 함께
전에, -p 옵션을 지정하면 출력이 비대화형에 적합하게 형식이 지정됩니다.
사용합니다.

FC [-e 편집자] [먼저 [지난]]

fc -l [-nr] [먼저 [지난]]

fc -s [오래된 = 새로운] [먼저]
XNUMXD덴탈의 fc 기본 제공 목록 또는 이전에 입력한 명령을 편집하고 다시 실행합니다.
대화형 쉘.

-e 편집자
편집기로 명명된 편집기를 사용하여 명령을 편집하십시오. 편집기 문자열은
명령 이름, PATH 변수를 통한 검색 대상. 값
FCEDIT 변수는 다음과 같은 경우 기본값으로 사용됩니다. -e 지정되지 않습니다. FCEDIT가
null이거나 설정되지 않은 경우 EDITOR 변수의 값이 사용됩니다. EDITOR가 null이거나
설정되지 않은, ed(1) 편집기로 사용됩니다.

-l (엘)
편집기를 호출하지 말고 명령을 나열하십시오. 명령은
영향을 받는 첫 번째 및 마지막 피연산자가 나타내는 순서대로 작성
by -r, 각 명령 앞에 명령 번호가 옵니다.

-n -l을 사용하여 나열할 때 명령 번호를 표시하지 않습니다.

-r 나열된 명령의 순서를 반대로 합니다( -l) 또는 편집됨(둘 다 -l
...도 아니다 -s).

-s 편집기를 호출하지 않고 명령을 다시 실행하십시오.

먼저

last 나열하거나 편집할 명령을 선택합니다. 할 수 있는 이전 명령의 수
액세스할 수 있는지 여부는 HISTSIZE 변수 값에 의해 결정됩니다. 가치
첫 번째 또는 마지막 또는 둘 다 다음 중 하나입니다.

[+]숫자
명령 번호를 나타내는 양수. 명령 번호는
와 함께 표시 -l 옵션을 선택합니다.

-번호
실행된 명령을 나타내는 음수 십진수
이전에 명령 수. 예를 들어 -1은 즉시
이전 명령.


로 시작하는 가장 최근에 입력한 명령을 나타내는 문자열
끈. old=new 피연산자가 함께 지정되지 않은 경우 -s, 문자열 형식
첫 번째 피연산자의 포함된 등호를 포함할 수 없습니다.

다음 환경 변수는 fc 실행에 영향을 줍니다.

FCEDIT 사용할 편집기의 이름입니다.

HISTSIZE 액세스할 수 있는 이전 명령의 수입니다.

fg []
지정된 작업 또는 현재 작업을 전경으로 이동합니다.

getopts 옵트스트링 였다
더 포식스 getopts 명령과 혼동하지 마십시오. 실험실 -유도 getopt(1).

첫 번째 인수는 일련의 문자여야 하며 각 문자는 선택적으로
옵션에 인수가 필요함을 나타내는 콜론이 뒤에 옵니다. 변수
지정된 구문 분석 옵션으로 설정됩니다.

XNUMXD덴탈의 getopts 명령은 이전 버전을 더 이상 사용하지 않습니다. getopt(1) 취급으로 인한 유용성
공백을 포함하는 인수.

XNUMXD덴탈의 getopts 내장은 목록에서 옵션과 인수를 얻는 데 사용할 수 있습니다.
매개변수. 호출될 때, getopts 에서 다음 옵션의 값을 배치합니다.
에 의해 지정된 쉘 변수의 목록에 있는 옵션 문자열 였다 그리고 그것의 인덱스
쉘 변수 OPTIND. 쉘이 호출되면 OPTIND는 1로 초기화됩니다.
인수가 필요한 각 옵션, getopts builtin은 그것을 쉘에 넣을 것입니다.
변수 OPTARG. 옵션에서 허용되지 않는 경우 옵트스트링, OPTARG는
설정되지 않은 상태가 됩니다.

옵트스트링 인식된 옵션 문자의 문자열입니다(참조 getopt(삼)). 편지라면
콜론이 뒤에 오는 옵션에는 인수가 있을 수 있거나 없을 것으로 예상됩니다.
공백으로 구분하십시오. 옵션 문자를 찾을 수 없는 경우
예상되는 getopts 변수를 설정합니다 였다 "?"로; getopts 그런 다음 OPTARG를 설정 해제합니다.
표준 오류에 출력을 씁니다. 콜론을 첫 번째 문자로 지정하여
옵트스트링 모든 오류는 무시됩니다.

마지막 옵션에 도달하면 XNUMX이 아닌 값이 반환됩니다. 없는 경우
나머지 주장, getopts 설정됩니다 였다 특수 옵션 "--"으로, 그렇지 않으면
설정됩니다 였다 에게 "?".

다음 코드 조각은 명령에 대한 인수를 처리하는 방법을 보여줍니다.
옵션 [a] 및 [b]를 사용할 수 있고 옵션 [c]를 사용할 수 있습니다.
논의.

getopts abc: f
do
케이스 $f
| b) 플래그=$f;;
c) 화물=$OPTARG;
\?) 에코 $USAGE; 1번 출구;;
그 C

시프트 `expr $OPTIND - 1`

이 코드는 다음 중 하나를 동등하게 받아들입니다.

cmd -acarg 파일 파일
cmd -a -c arg 파일 파일
cmd -carg -a 파일 파일
cmd -a -carg -- 파일 파일

해시 -rv 명령 ...
쉘은 명령의 위치를 ​​기억하는 해시 테이블을 유지 관리합니다. 없음
어떤 주장이든, 해시 명령은 이 테이블의 내용을 인쇄합니다.
마지막 이후 조회되지 않은 항목 cd 명령은 다음으로 표시됩니다.
별표; 이러한 항목이 유효하지 않을 수 있습니다.

인수와 함께, 해시 명령은 해시 테이블에서 지정된 명령을 제거합니다.
(함수가 아닌 경우) 그런 다음 찾습니다. 이랑 -v 옵션, 해시 인쇄
명령을 찾을 때 명령의 위치. NS -r 옵션은 해시를 유발합니다.
함수를 제외한 해시 테이블의 모든 항목을 삭제하는 명령입니다.

비밀번호 [-LP]
builtin 명령은 현재 디렉토리를 다시 계산하지 않고 기억합니다.
매번. 이렇게 하면 속도가 빨라집니다. 그러나 현재 디렉토리의 이름이 변경되면
내장 버전 pwd 디렉토리의 이전 이름을 계속 인쇄합니다. NS -P
옵션은 현재 작업 디렉토리의 물리적 값이 표시되도록 합니다.
즉, 모든 심볼릭 링크는 각각의 값으로 해석됩니다. NS -L 옵션 회전
이전의 효과에서 벗어나 -P 옵션을 제공합니다.

읽다 [-p 신속한] [-r] 변수 [...]
다음과 같은 경우 프롬프트가 인쇄됩니다. -p 옵션이 지정되고 표준 입력은
단말기. 그런 다음 표준 입력에서 행을 읽습니다. 후행 줄 바꿈은
줄에서 삭제되고 단어 섹션에 설명된 대로 줄이 분할됩니다.
위에서 분할하고 조각은 변수에 순서대로 할당됩니다. 적어도 하나
변수를 지정해야 합니다. 변수보다 조각이 많을 경우 나머지
조각(이를 구분하는 IFS의 문자와 함께)은
마지막 변수. 조각보다 변수가 더 많은 경우 나머지 변수는
null 문자열을 할당했습니다. NS 읽기 내장은 EOF가 아닌 한 성공을 나타냅니다.
입력에서 발견된 경우 실패가 반환됩니다.

기본적으로 -r 옵션이 지정되면 백슬래시 "\"가 이스케이프 역할을 합니다.
문자로 인해 다음 문자가 문자 그대로 처리됩니다. 백슬래시인 경우
뒤에 개행 문자가 오면 백슬래시와 개행 문자가 삭제됩니다.

읽기 전용 name ...

읽기 전용 -p
지정된 이름은 읽기 전용으로 표시되어 나중에 사용할 수 없습니다.
수정되거나 설정되지 않습니다. 쉘은 변수의 값을 동일하게 설정할 수 있습니다.
쓰기로 읽기 전용으로 표시된 시간

읽기 전용 이름=값

인수 없이 readonly 명령은 모든 읽기 전용 변수의 이름을 나열합니다.
와 더불어 -p 옵션이 지정되지 않은 경우 출력이 적절하게 형식화됩니다.
대화식 사용.

printf 체재 [인수 ...]
printf 의 제어 하에 첫 번째 인수 이후에 형식을 지정하고 인수를 인쇄합니다.
체재. 그만큼 체재 세 가지 유형의 객체를 포함하는 문자열입니다.
단순히 표준 출력으로 복사되는 일반 문자, 문자 이스케이프
변환되어 표준 출력으로 복사되는 시퀀스 및 형식
각 사양은 다음 연속 인쇄를 유발합니다. 논의.

XNUMXD덴탈의 인수 첫 번째 이후 해당 형식이 다음과 같은 경우 문자열로 처리됩니다.
b, c or s; 그렇지 않으면 다음과 같이 C 상수로 평가됩니다.
확장명 :

· 선행 더하기 또는 빼기 기호가 허용됩니다.
· 선행 문자가 작은따옴표나 큰따옴표이면 값은
다음 문자의 ASCII 코드입니다.

형식 문자열은 다음을 충족하는 데 필요한 만큼 자주 재사용됩니다. 인수. 어떤
추가 형식 사양은 XNUMX 또는 null 문자열로 평가됩니다.

문자 이스케이프 시퀀스는 ANSI X3.159-1989에 정의된 백슬래시 표기법으로 되어 있습니다.
("ANSI C89"). 문자와 그 의미는 다음과 같습니다.

\a 쓰기 캐릭터.

\b 쓰기 캐릭터.

\f 쓰기 캐릭터.

\n 쓰기 캐릭터.

\r 쓰기 캐릭터.

\t 쓰기 캐릭터.

\v 쓰기 캐릭터.

\\ 백슬래시 문자를 작성합니다.

\NUM ASCII 값이 8, 1 또는 2자리인 3비트 문자 쓰기
XNUMX진수 NUM.

각 형식 사양은 퍼센트 문자(``%'')로 시작됩니다. NS
나머지 형식 사양에는 다음이 포함됩니다.

다음 플래그 중 XNUMX개 이상:

# 값이 인쇄되어야 함을 지정하는 `#' 문자
``대체 형태''. 을위한 b, c, ds 형식, 이 옵션에는
효과. 를 위해 o 형식 숫자의 정밀도가 다음으로 증가합니다.
출력 문자열의 첫 번째 문자를 XNUMX으로 만듭니다. 를 위해 x
(X) 형식에서 0이 아닌 결과에는 문자열 0x(XNUMXX)가 추가됩니다.
럭셔리 e, E, f, gG 형식, 결과에는 항상
소수점 뒤에 숫자가 없어도(보통
소수점은 숫자가
소수점 이하). 을위한 gG 형식, 후행 XNUMX은
그렇지 않으면 결과에서 제거되지 않습니다.

- 다음을 지정하는 빼기 기호 `-' 왼쪽 (left) 조정 의 출력
표시된 필드;

+ 항상 기호가 있어야 함을 지정하는 `+' 문자
부호 있는 형식을 사용할 때 숫자 앞에

' ' 양수 앞에 공백이 있어야 함을 지정하는 공백
서명된 형식의 숫자입니다. '+'는 둘 다 다음과 같을 때 공백을 무시합니다.
사용 된;

0 제로 패딩을 사용해야 함을 나타내는 0 'XNUMX' 문자
공백 채우기보다. '-'는 둘 다 사용되는 경우 '0'을 재정의합니다.

필드 너비:
다음을 지정하는 선택적 숫자 문자열 ; 출력 문자열이 있는 경우
필드 너비보다 적은 문자가 왼쪽에 공백으로 채워집니다(또는
오른쪽, 왼쪽 조정 표시가 있는 경우) 필드를 구성하기 위해
너비(앞에 있는 XNUMX은 플래그이지만 포함된 XNUMX은
필드 너비);

정도:
선택적 마침표 '.', 다음을 제공하는 선택적 숫자 문자열
정확 소수점 뒤에 나타날 자릿수를 지정합니다.
점을 위해 ef 형식 또는 인쇄할 최대 바이트 수
문자열(bs 형식); 숫자 문자열이 누락된 경우 정밀도는
XNUMX으로 처리됩니다.

체재:
사용할 형식의 유형을 나타내는 문자(다음 중 하나
diouxXfwEgGbcs).

필드 너비 또는 정밀도는 '*' 숫자 문자열 대신. 이 경우
논의 필드 너비 또는 정밀도를 제공합니다.

형식 문자와 그 의미는 다음과 같습니다.

디우Xx XNUMXD덴탈의 논의 부호 있는 XNUMX진수(d 또는 i), 부호 없는 XNUMX진수,
부호 없는 XNUMX진수 또는 부호 없는 XNUMX진수(X 또는 x).

f XNUMXD덴탈의 논의 [-]ddd 스타일로 인쇄됩니다..ddd 여기서 d의 수
소수점이 정밀도 사양과 동일한 후
논쟁. 정밀도가 누락된 경우 6자리가 제공됩니다. 만약
정밀도는 명시적으로 0이고 숫자와 소수점이 인쇄되지 않습니다.

eE XNUMXD덴탈의 논의 [-]d 스타일로 인쇄됩니다..DDDe±dd가 있는 경우
소수점 앞의 숫자와 뒤에 오는 숫자는 다음과 같습니다.
인수에 대한 정밀도 사양; 정밀도가 누락된 경우
6자리가 생성됩니다. 대문자 E는 'E' 형식에 사용됩니다.

gG XNUMXD덴탈의 논의 스타일로 인쇄됩니다 f 또는 스타일로 e (E) 전체 제공
최소 공간의 정밀도.

b 문자열의 문자 논의 백슬래시 이스케이프로 인쇄됩니다.
확장된 시퀀스.
다음과 같은 추가 백슬래시 이스케이프 시퀀스가 ​​지원됩니다.

\c 활동 대시 문자열의 나머지 문자를 무시하려면
그것을 포함하는 피연산자, 나머지 문자열 피연산자 및
형식 피연산자의 추가 문자.

\0NUM ASCII 값이 8, 1 또는 인 2비트 문자를 작성하십시오.
3자리 XNUMX진수 NUM.

c 의 첫 번째 캐릭터 논의 인쇄됩니다.

s 문자열의 문자 논의 끝에 도달할 때까지 인쇄됩니다.
또는 정밀도 사양에 표시된 바이트 수가 다음과 같을 때까지
도달했다; 정밀도가 생략되면 문자열의 모든 문자가
인쇄.

% `%'를 인쇄하십시오. 인수가 사용되지 않습니다.

존재하지 않거나 작은 필드 너비로 인해 필드가 잘리는 경우는 없습니다.
패딩은 지정된 필드 너비가 실제 너비를 초과하는 경우에만 발생합니다.

세트 [{ 옵션 | +옵션 | -- }] 아르헨티나 ...
XNUMXD덴탈의 세트 명령은 세 가지 다른 기능을 수행합니다.

인수가 없으면 모든 쉘 변수의 값을 나열합니다.

옵션이 주어지면 지정된 옵션 플래그를 설정하거나 설명된 대로 지웁니다.
라고 불리는 부분에서 논의 명부 처리. 특별한 경우로 옵션이
-o 또는 +o이고 인수가 제공되지 않으면 쉘은 모든 해당 설정을 인쇄합니다.
옵션. 옵션이 -o이면 설정이 사람이 읽을 수 있는 형식으로 인쇄됩니다.
옵션이 +o이면 설정이 다시 입력하기에 적합한 형식으로 인쇄됩니다.
쉘이 동일한 옵션 설정에 영향을 미치도록 합니다.

set 명령의 세 번째 용도는 쉘의 위치 값을 설정하는 것입니다.
지정된 인수에 대한 매개변수. 없이 위치 매개변수를 변경하려면
옵션을 변경하려면 "--"를 설정할 첫 번째 인수로 사용하십시오. 인수가 없으면
set 명령은 모든 위치 매개변수를 지웁니다(실행과 동일
"$# 이동".)

옮기다 [n]
위치 매개변수를 n번 이동합니다. NS 변화 의 값을 설정합니다. $1 가치에
of $2, 의 가치 $2 가치에 $3등의 값을 줄입니다. $# by
하나. n이 위치 매개변수의 수보다 크면, 변화 발행할 것이다
오류 메시지가 표시되고 반환 상태 2로 종료됩니다.

test 표현

[ 표현 ]
XNUMXD덴탈의 test 유틸리티는 표현식을 평가하고 true로 평가되면 다음을 반환합니다.
1(참) 종료 상태; 그렇지 않으면 XNUMX(거짓)을 반환합니다. 표현이 없다면,
테스트는 또한 1(거짓)을 반환합니다.

모든 연산자와 플래그는 별도의 인수입니다. test 유용.

다음 프라이머리는 표현식을 구성하는 데 사용됩니다.

-b 파일 참이면 파일 존재하며 블록 특수 파일입니다.

-c 파일 참이면 파일 존재하며 문자 특수 파일입니다.

-d 파일 참이면 파일 존재하며 디렉토리입니다.

-e 파일 참이면 파일 존재합니다(유형에 관계없이).

-f 파일 참이면 파일 존재하며 일반 파일입니다.

-g 파일 참이면 파일 존재하고 그룹 ID 설정 플래그가 설정됩니다.

-h 파일 참이면 파일 존재하며 심볼릭 링크입니다.

-k 파일 참이면 파일 존재하고 고정 비트가 설정됩니다.

-n 길이가 이면 참 XNUMX이 아닙니다.

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

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

-s 파일 참이면 파일 존재하고 크기가 XNUMX보다 큽니다.

-t 파일 설명자
파일 기술자 번호가 다음과 같은 파일이면 참 파일 설명자 is
열려 있고 터미널과 연결되어 있습니다.

-u 파일 참이면 파일 존재하고 설정된 사용자 ID 플래그가 설정됩니다.

-w 파일 참이면 파일 존재하며 쓰기 가능합니다. True는 다음을 나타냅니다.
쓰기 플래그가 켜져 있습니다. 파일은 읽기 전용 파일 시스템에서 쓸 수 없습니다.
이 테스트가 참을 나타내더라도.

-x 파일 참이면 파일 존재하고 실행 가능합니다. True는 다음을 나타냅니다.
실행 플래그가 켜져 있습니다. 만약에 파일 는 디렉토리이고 true는 다음을 나타냅니다. 파일
검색할 수 있습니다.

-z 길이가 이면 참 XNUMX입니다.

-L 파일 참이면 파일 존재하며 심볼릭 링크입니다. 이 연산자는 유지됩니다.
이 프로그램의 이전 버전과의 호환성을 위해. 의지하지마
그것의 존재에; 사용하다 -h 대신.

-O 파일 참이면 파일 존재하고 소유자가 이것의 유효 사용자 ID와 일치합니다.
프로세스.

-G 파일 참이면 파일 존재하고 해당 그룹이 다음의 유효 그룹 ID와 일치합니다.
이 과정.

-S 파일 참이면 파일 존재하며 소켓입니다.

file1 -nt file2
참이면 file1file2 존재하고 file1 보다 최신입니다 file2.

file1 -오 file2
참이면 file1file2 존재하고 file1 ~보다 나이가 많다 file2.

file1 -만약에 file2
참이면 file1file2 존재하고 동일한 파일을 참조하십시오.

참이면 null 문자열이 아닙니다.

s1 = s2 문자열이면 참 s1s2 동일합니다.

s1 != s2 문자열이면 참 s1s2 동일하지 않습니다.

s1 < s2 문자열이면 참 s1 전에 온다 s2 ASCII 값을 기반으로
자.

s1 > s2 문자열이면 참 s1 후에 온다 s2 ASCII 값을 기반으로
자.

n1 -eq n2 정수이면 참 n1n2 대수적으로 동일합니다.

n1 -네 n2 정수이면 참 n1n2 대수적으로 동일하지 않습니다.

n1 -gt n2 정수이면 참 n1 대수적으로 정수보다 큽니다. n2.

n1 -게 n2 정수이면 참 n1 대수적으로 다음보다 크거나 같습니다.
정수 n2.

n1 -그 n2 정수이면 참 n1 대수적으로 정수보다 작습니다. n2.

n1 그들 n2 정수이면 참 n1 대수적으로 다음보다 작거나 같음
정수 n2.

이러한 기본은 다음 연산자와 결합할 수 있습니다.

! 표현 참이면 표현 거짓입니다.

표현 1 -a 표현 2
둘 다 있으면 참 표현 1표현 2 사실이다.

표현 1 -o 표현 2
둘 중 하나인 경우 참 표현 1 or 표현 2 사실이다.

(표현) 표현식이 참이면 참입니다.

XNUMXD덴탈의 -a 연산자는 다음보다 우선 순위가 높습니다. -o 연산자.

times 셸과 다음에서 실행되는 프로세스에 대해 누적된 사용자 및 시스템 시간을 인쇄합니다.
껍질. 반환 상태는 0입니다.

덫 [동작 신호 ...]
지정된 신호가 다음과 같을 때 쉘이 구문 분석하고 조치를 실행하도록 합니다.
받았다. 신호는 신호 번호 또는 신호 이름으로 지정됩니다.
If 신호 0 또는 EXIT이면 쉘이 종료될 때 조치가 실행됩니다. 동작
빈(''), 지정된 신호가 무시되도록 합니다. 와 함께 동작 생략되거나
set to `-' 지정된 신호는 기본 동작으로 설정됩니다. 쉘 때
서브 쉘을 분기하면 트랩된(무시되지는 않음) 신호를 기본값으로 재설정합니다.
동작. NS 트랩 명령은 입력 시 무시된 신호에 영향을 미치지 않습니다.
껍질. 트랩 인수가 없으면 신호 및 해당 신호 목록을 작성합니다.
에 대한 입력으로 적합한 형식의 표준 출력에 대한 관련 작업
동일한 트래핑 결과를 달성하는 쉘.

예 :

트랩

트랩된 신호 및 해당 작업 나열

트랩 '' INT QUIT tstp 30

신호 무시 INT QUIT TSTP USR1

트랩 날짜 INT

신호 INT 수신 시 날짜 인쇄

유형 [name ...]
각 이름을 명령으로 해석하고 명령 검색의 해상도를 인쇄하십시오.
가능한 해결 방법은 다음과 같습니다. 셸 키워드, 별칭, 셸 내장, 명령, 추적된 별칭
찾을 수 없습니다. 별칭의 경우 별칭 확장이 인쇄됩니다. 명령 및 추적
aliases 명령의 전체 경로 이름이 인쇄됩니다.

한도 [-H | -S] [-a | -tfdscmlpn [가치]]
프로세스에 대한 하드 또는 소프트 제한을 문의하거나 설정하거나 새로운 제한을 설정합니다. NS
엄격한 제한(프로세스가 위반할 수 없는 것과 위반할 수 없는 것) 중에서 선택
낮아지면 올라감) 및 소프트 리미트(프로세스가 중단되도록 하는)
신호를 받았지만 반드시 죽일 필요는 없으며, 제기될 수 있음)는 다음과 같이 만들어집니다.
플래그:

-H 엄격한 제한 설정 또는 문의

-S 소프트 한계를 설정하거나 문의하십시오. 둘 다 아니라면 -H ...도 아니다 -S 지정되고,
소프트 제한이 표시되거나 두 제한이 모두 설정됩니다. 둘 다 지정하면
마지막 사람이 이깁니다.

조사하거나 설정할 한계는 다음 중 하나를 지정하여 선택됩니다.
플래그:

-a 모든 현재 제한 표시

-t CPU 시간 제한 표시 또는 설정(초)

-f 생성할 수 있는 가장 큰 파일에 대한 제한을 표시하거나 설정합니다(
512바이트 블록)

-d 프로세스의 데이터 세그먼트 크기에 대한 제한을 표시하거나 설정합니다(in
킬로바이트)

-s 프로세스의 스택 크기에 대한 제한을 표시하거나 설정합니다(KB 단위).

-c 생성할 수 있는 가장 큰 코어 덤프 크기에 대한 제한을 표시하거나 설정합니다.
(512바이트 블록에서)

-m 다음에서 사용할 수 있는 총 물리적 메모리에 대한 제한을 표시하거나 설정합니다.
프로세스(KB)

-l 프로세스가 잠글 수 있는 메모리 양에 대한 제한을 표시하거나 설정합니다. 말록(2)
(킬로바이트)

-p 이 사용자가 가질 수 있는 프로세스 수에 대한 제한을 표시하거나 설정합니다.
일회

-n 프로세스가 한 번에 열 수 있는 파일 수에 대한 제한 표시 또는 설정

-r 프로세스의 실시간 스케줄링 우선 순위에 대한 제한을 표시하거나 설정합니다.

이들 중 어느 것도 지정되지 않은 경우 표시되거나 설정되는 파일 크기 제한입니다. 만약에
값이 지정되면 제한이 해당 숫자로 설정됩니다. 그렇지 않으면 현재 제한은
표시됩니다.

임의 프로세스의 한계는 다음을 사용하여 표시하거나 설정할 수 있습니다. sysctl(8) 유틸리티.

우마스크 [마스크]
umask의 값을 설정합니다(참조 마스크(2))를 지정된 XNUMX진수 값으로 변경합니다. 만약 인수
생략하면 umask 값이 인쇄됩니다.

별칭 [-a] [name]
If name 가 지정되면 쉘은 해당 별명을 제거합니다. 만약에 -a 지정되면 모든 별칭
제거됩니다.

설정 해제 [-fv] name ...
지정된 변수와 함수는 설정되지 않고 내보내지지 않습니다. 만약에 -f or -v is
지정된 경우 해당 함수 또는 변수가 각각 설정 해제됩니다. 주어진 경우
이름은 변수와 함수 모두에 해당하며 옵션은 제공되지 않습니다.
변수가 설정되지 않았습니다.

기다리다 []
지정된 작업이 완료될 때까지 기다렸다가 마지막 프로세스의 종료 상태를 반환합니다.
일에. 인수가 생략되면 모든 작업이 완료될 때까지 기다렸다가 반환합니다.
종료 상태가 XNUMX입니다.

명령 라인 편집
인셀덤 공식 판매점인 대시 터미널, 현재 명령 및 명령에서 대화식으로 사용 중입니다.
역사(참조 fc in 빌트인) vi 모드 명령줄 편집을 사용하여 편집할 수 있습니다. 이 모드
vi 매뉴얼 페이지에 설명된 것과 유사한 아래 설명된 명령을 사용합니다.
'set -o vi' 명령은 vi 모드 편집을 활성화하고 sh를 vi 삽입 모드로 전환합니다. 바이와 함께
모드가 활성화되면 sh는 삽입 모드와 명령 모드 간에 전환할 수 있습니다. 편집자는 아니다
여기에 자세히 설명되어 있지만 이후 문서에서 설명합니다. vi와 유사합니다: ⟨ESC⟩ 입력
명령 VI 명령 모드로 전환됩니다. 명령 모드에서 ⟨return⟩을 누르면
쉘에 라인을 전달합니다.

EXIT 지위


구문 오류와 같이 셸에서 감지한 오류로 인해 셸이 종료됩니다.
XNUMX이 아닌 종료 상태. 쉘이 대화식 쉘이 아닌 경우
쉘 파일이 중단됩니다. 그렇지 않으면 쉘은 마지막 종료 상태를 리턴합니다.
명령이 실행되거나 exit 내장이 숫자 인수와 함께 사용되는 경우 반환됩니다.
논의.

환경


HOME 자동 설정 로그인(1) 비밀번호에 있는 사용자의 로그인 디렉토리에서
파일 (passwd(4)). 이 환경 변수는 기본값으로도 작동합니다.
cd 내장에 대한 인수.

PATH 실행 파일의 기본 검색 경로입니다. 위 섹션 참조 경로 검색.

CDPATH cd 내장과 함께 사용되는 검색 경로입니다.

MAIL 새 메일의 도착을 확인할 메일 파일의 이름입니다.
MAILPATH에 의해 재정의됩니다.

MAILCHECK 쉘이 메일의 도착을 확인하는 빈도(초)
MAILPATH 또는 MAIL 파일에 의해 지정된 파일. 0으로 설정하면 검사가
각 프롬프트에서 발생합니다.

MAILPATH 쉘이 들어오는 것을 확인하기 위한 콜론 ":"으로 구분된 파일 이름 목록
우편. 이 환경 설정은 MAIL 설정보다 우선합니다. 최대가 있습니다
한 번에 모니터링할 수 있는 사서함 10개 중

PS1 수퍼유저가 아닌 경우 기본 프롬프트 문자열(기본값은 "$")
이 경우 기본값은 "#"입니다.

PS2 기본적으로 "> "로 설정되는 보조 프롬프트 문자열입니다.

PS4 실행 추적(set -x)이 활성화된 경우 각 줄 앞의 출력, 기본값은 다음과 같습니다.
"+ ".

IFS 입력 필드 구분 기호. 이것은 일반적으로 ⟨space⟩, ⟨tab⟩ 및 ⟨newline⟩으로 설정됩니다.
을 참조 스페이스 버튼 파편 자세한 내용은 섹션을 참조하십시오.

TERM 셸의 기본 터미널 설정입니다. 이것은 후손들에게 유전된다.
쉘이며 히스토리 편집 모드에서 사용됩니다.

HISTSIZE 쉘에 대한 히스토리 버퍼의 라인 수.

PWD 현재 작업 디렉터리의 논리 값입니다. 이것은 cd
명령.

OLDPWD 현재 작업 디렉토리의 이전 논리 값입니다. 이것은
cd 명령.

PPID 쉘의 상위 프로세스의 프로세스 ID입니다.

onworks.net 서비스를 사용하여 대시 온라인 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad