다음과 같이 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
한 번만 호출됩니다.
이러한 호출의 결과는 행 수를 계산하는 데 재사용됩니다.