예를 들어, 나는 내 스크립트 파일에 "10명이 현재 온라인 상태입니다"라고 말하려고 했습니다.
다음 줄의 "지금 현재 온라인에 있는 사람" 부분 없이는 명령을 실행할 수 없는 것 같습니다.
지금 이 순간 나는
w='who | wc -l'
echo "There are $w people online at the moment"
그러나 나는 항상 출력을 얻습니다.
There are who | wc -l users online at the moment
명령이 중간에 작동하도록 하는 방법은 무엇입니까? 예제를 보고 복사하려고 노력했지만 명령 대체 문제에는 도움이 되지 않는 것 같습니다.
답변1
원하는 출력
who | wc -l
에 할당된 w
문자열이 아니라 주변에 따옴표가 있어서 얻을 수 있는 문자열입니다. 명령 대체를 사용해야 합니다 $(...)
.
w=$(who | wc -l)
echo "There are $w people online at the moment"
(백틱을 사용할 수도 있지만 쉽게 중첩할 수는 없습니다).
답변2
또 다른 해결책:
echo There are $(who | wc -l) people online at the moment
답변3
명령을 실행하려면 백틱을 사용해야 합니다.
w=`who | wc -l` echo "There are $w people online at the moment"