괄호를 사용한 입력 스트림에 대한 규칙

괄호를 사용한 입력 스트림에 대한 규칙

다음 명령에 대한 입력 데이터 스트림(여러 소스로부터)을 생성하기 위해 괄호를 사용합니다. 예를 들어:

(date; pwd; cat file1.txt) | less

이것은 편리하고 잘 작동합니다. 그러나 이것이 허용 가능한/표준 접근 방식입니까? 입력 스트림을 생성하는 이러한 방법에 대한 일반적인 규칙은 무엇입니까? 자세한 내용은 참고 자료를 찾을 수 없습니다.

답변1

글쎄, "허용 가능한" 것은 일반적으로 리뷰어의 눈에 보이는 것이며 의견 기반 질문은 실제로 SE에 적합하지 않지만 대안을 고려하고 모든 사람이 선택하도록 할 수 있다고 생각합니다.


이것이 작동하려면 어떻게든 명령을 그룹화해야 하며 (...)이를 사용하는 간단한 솔루션이 있습니다. 또 다른 한 줄 옵션은 다음과 같습니다.

{ date; pwd; cat file1.txt; } | less

그렇지 않으면 동일하지만 관련 하위 쉘이 없으며(파이프에서 얻는 것 외에는 차이가 없을 수도 있음) 강제 공백과 끝에 세미콜론이 있어서 구문이 더 추악합니다. 두 가지 모두에 대해서는 Bash 매뉴얼을 참조하십시오.3.2.5.3 그룹화 명령.

물론 외부 스크립트에서 명령 그룹을 숨길 수 있지만 추가 파일이 있으면 불편합니다. 명령을 함수에 넣는 것이 좋은 중간 지점이 될 수 있습니다. 이런 함수를 만들어 보세요

somestuff() {
    date
    pwd
    cat file1.txt
}

그런 다음 somestuff | less상황에 따라 기분이 더 좋아지면 사용하십시오.

관련 정보