bash 명령 변수 생성

bash 명령 변수 생성

이 명령을 생성하여 변수에 넣고 싶습니다.

sort -k 1,1 | tr " " "\n" | users | wc -l

그러나 아래와 같이 지금까지의 출력에서는 오류가 발생하여 제대로 작동하지 않습니다.

us_num=$(users | tr " " "\n" | sort -k 1,1 | wc -l)
echo "Currently there is $(us_num) number of users on the server."

어떤 아이디어가 있나요?

답변1

$(us_num)명령을 실행 us_num하고 명령의 출력으로 대체되는 명령 대체입니다.

삽입할 값바꾸다 us_num, $us_num대신 다음을 사용하세요.

printf 'There are currently %d number of users on the server\n' "$us_num"

또한 언급한 첫 번째 파이프라인에는 명령 위치가 잘못되어 있습니다. 이 users명령은 터미널의 입력을 무시 tr하고 sort터미널로부터의 입력을 기다립니다.

wc -w설명에서 언급했듯이 다음을 사용하여 파이프라인을 단축할 수도 있습니다(단어 수 계산).

printf 'There are currently %d number of users on the server\n' "$(users|wc -w)"

관련 정보