명령 출력을 변수로 읽기 [중복]

명령 출력을 변수로 읽기 [중복]

나는 bash 스크립트를 만들고 있는데 완전히 처음이라 길을 잃었습니다.

나는 이 코드를 작성했다

cat * | grep "|*parameter1*|" | grep "|*parameter2*|" | cut -f 8,11,12,15,21,23,34 -d "|" | wc -l

wc -l이것은 훌륭하게 작동하지만 다른 bash 명령을 사용하여 평균을 낼 수 있도록 출력을 변수로 읽어야 합니다 . 그런 다음 이 평균을 인쇄하여 사람이 읽을 수 있도록 만드세요.

답변1

$()직접적인 질문에 대답하려면 해당 출력이 변수에 할당될 수 있도록 코드를 시퀀스로 래핑해야 합니다 . 이와 같이:

x=$(your_code_goes_here)

즉, 귀하의 농담에 대해 몇 가지 주의 사항이 있습니다.

  • 왜 리드합니까 cat *? 이것은 것 같다고양이의 쓸모없는 사용. 직접 할 수 있어요

    grep pattern *
    

    *이는 현재 디렉토리의 모든 파일 및 하위 디렉토리와 일치하고 (재귀) 옵션을 제공하지 않고 디렉토리에서 검색하도록 요청하면 grep경고를 표시하므로 여전히 좋은 생각은 아닙니다 . 사용 사례에 따라 -r사용법이 적절할 수도 있고 그렇지 않을 수도 있습니다.*

  • wc -l결국 목적이 무엇인지 잘 모르겠습니다 . cut여러 줄에 걸쳐 출력을 인쇄하지 않으므로 wc -l(줄 수를 계산하면) 항상 1이 반환됩니다.

답변2

다음 구문을 사용할 수 있습니다.

var=$(cat * | grep "|*parameter1*|" | grep "|*parameter2*|" | cut -f 8,11,12,15,21,23,34 -d "|" | wc -l)

관련 정보