예를 들어 스크립트 파일에 “현재 온라인 상에 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"