명령 파이프라인의 여러 부분에서 여러 변수 할당

명령 파이프라인의 여러 부분에서 여러 변수 할당

다음과 같이 2개의 변수가 할당되었다고 가정해 보겠습니다.

psaux=`ps aux | grep someProcessName`
pscount=`ps aux | grep someProcessName | wc -l`

"ps aux | grep someProcessName" 부분이 한 번만 실행되도록 할당을 한 줄로 결합하고 싶습니다. 따라서 실행 사이에 아무것도 변경될 수 없다는 것을 알고 있습니다.

내가 생각해 낼 수 있는 가장 가까운 것은 다음과 같은 이상한 의사 코드입니다.

read psaux pscount <<<$(ps aux | grep someProcessName | tee &1 | wc -l)

답변1

첫 번째 변수를 다시 사용하세요.

psaux="$( ps aux | grep "someProcessName" )"
pscount="$( printf '%s\n' "$psaux" | wc -l )"

이 명령은 grep한 번만 호출됩니다.
이러한 호출의 결과는 행 수를 계산하는 데 재사용됩니다.

관련 정보