![명령 대체 구문 $()는 연산자 또는 명령으로 간주됩니까?](https://linux55.com/image/139197/%EB%AA%85%EB%A0%B9%20%EB%8C%80%EC%B2%B4%20%EA%B5%AC%EB%AC%B8%20%24()%EB%8A%94%20%EC%97%B0%EC%82%B0%EC%9E%90%20%EB%98%90%EB%8A%94%20%EB%AA%85%EB%A0%B9%EC%9C%BC%EB%A1%9C%20%EA%B0%84%EC%A3%BC%EB%90%A9%EB%8B%88%EA%B9%8C%3F.png)
이 중 하나라고 부르는 공식 문서를 찾을 수 없습니다. 어쨌든, 명령과 운영자의 기술적 차이점은 정확히 무엇입니까?
답변1
답변2
한 가지 명령:
일반적으로 이름에는 영숫자 문자열이 있습니다.
외부 유틸리티, 내장 도구 또는 기능입니다. 이런 의미에서 내장 함수가 출력으로 생성하는 대부분은
type
명령입니다.가지다접두사상징.
일반적으로 어떤 종류의 I/O가 변경됩니다.
운영자:
일반적으로 이름은 없지만 별명이 있을 수 있는 기호 문자열입니다.
내장 함수는 이해되지 않습니다
type
(혼란스러운 이름의 함수나 스크립트가 있는 경우 제외).더 자주중위또는접미사통사론.
때로는 교통경찰처럼 I/O를 지시하지만 내용을 변경하지는 않습니다.존재하다그것.
때로는 프로세스 순서를 안내합니다.
$()
명령이다치환:
- 첫째, (또는 보는 방법에 따라 마지막으로) 문자열입니다.
- 문자열은 텍스트로 구성됩니다.산출거기에 나열된 명령.
[
쉘 내장 명령은 다음과 같습니다.
test
필수 접미사가 붙은 명령 입니다]
.
[[
쉘 키워드 입니다 bash
:
[
보다 일반적이고 빠른 내장 명령 과 비슷 하지만 SFAIK에는 이에 상응하는test
.셸 키워드에는 명령처럼 보이지만 연산자처럼 동작하고 구분 기호 및 구문으로 다양한 형제 키워드가 필요한 및
time
같은 항목이 포함됩니다.for
이 코드는type
출력에서 내장 함수를 실행하여help
왼쪽에 키워드 목록과 내장 함수를 표시합니다.COLUMNS=30 help -m | tail -n +9 | tee >(cut -d ' ' -f2) >(cut -c 17-30 | cut -d ' ' -f1) > /dev/null | sort | sed -n "s/.*/type '&'/e"';/found/!p'
이것을 음성언어와 비교해보세요:
- 명령(및 일부 키워드)은 동사와 같습니다.
- 파일과 문자열은 명사입니다.
- 연산자는 구두점이나 전치사와 같습니다.
추상적으로 연산자는 유사한 명령으로 대체될 수 있는 다른 구문을 가진 명령일 뿐입니다.접두사스타일 명령 및 기타 명령. 사용이 불편할 수 있습니다.
분석적으로 말하면, 쉘의 컴파일된 코드는 디스어셈블러를 통해 실행될 수 있으며 연산자는 단지 명령이거나 오히려 일련의 어셈블리 언어 명령입니다.
답변3
사용자의 관점에서 볼 때 명령 대체는 쉘 기본 요소입니다. 이는 여러 작업(하위 쉘 시작, 명령 실행...)을 수행하고 값(명령의 출력)을 반환할 수 있는 쉘에 구현된 함수입니다. 명령 대체는 일반적으로 쉘이 확장을 수행하기 전에 명령에 대한 인수입니다. 즉, 사용자는 쉘 기능을 사용하여 쉘 프로세스의 결과를 얻습니다.