현재 로그인된 사용자(터미널당 로그인된 각 사용자)를 인쇄하려고 합니다. 이것이 내가 현재 가지고 있는 것입니다:
NOWDATE=$(date +"%Y-%m-%d")
NOWTIME=$(date +"%T")
USERS=$(who | awk -v nd="$NOWDATE"_"$NOWTIME" '{printf nd "\n" " User: "$1" Terminal: "$2" Login: "$3" "$4 "\n"}')
불행히도 \n
작동하지 않습니다. 즉, 변수 다음에 개행 문자를 얻을 수 없습니다 $4
. 출력에서는 새 줄을 실행하지 않습니다. printf
변수 뒤에 줄 바꿈을 달성하는 방법은 무엇입니까 $4
?
참고: 저는 사용자 목록을 표시하기 위해 echo를 실행하고 있습니다.echo $USERS
답변1
바꾸다
echo $USERS
그리고:
echo "$USERS"
in 과 같이 인용되지 않은 변수의 경우 echo $USERS
쉘은 다음을 실행합니다.분사. 이는 모든 공백 문자(예: 개행 문자)가 IFS의 첫 번째 문자(기본값: 공백)로 대체됨을 의미합니다. 줄 바꿈을 유지하려면 큰따옴표를 사용하십시오.