내부 명령으로 문장을 어떻게 계속합니까 않는 것 같습니다. 현재

예를 들어 스크립트 파일에 “현재 온라인 상에 10 명이 있습니다”라고 말하려고했습니다.

다음 줄에 “현재 온라인 상에있는 사람들”부분 없이는 명령이 제대로 작동하지 않는 것 같습니다.

현재 나는

w='who | wc -l'
echo "There are $w people online at the moment" 

그러나 나는 항상 출력으로 끝납니다.

There are who | wc -l users online at the moment 

중간에서 명령이 어떻게 작동합니까? 예제를보고 복사하려고했지만 명령 대체 문제를 해결하지 못하는 것 같습니다.



답변

당신은 출력을 원한다

who | wc -l

w문자열이 아닌에 할당되었습니다 . 따옴표로 인해 얻는 것입니다. 당신은 명령 대체를 사용해야합니다 $(...):

w=$(who | wc -l)
echo "There are $w people online at the moment"

(역 따옴표를 사용할 수도 있지만 쉽게 중첩 할 수는 없습니다).


답변

다른 해결책 :

echo There are $(who | wc -l) people online at the moment


답변

backtick를 사용하여 명령을 실행해야합니다

w=`who | wc -l`
echo "There are $w people online at the moment"