awk não fazendo uma nova linha

3

Estou tentando imprimir os usuários que estão conectados no momento (cada usuário logado em cada terminal). Isso é o que eu tenho atualmente:

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"}')

Infelizmente, \n não funciona, o que significa que não consigo obter uma nova linha após a variável $4 . A saída não faz novas linhas. Como posso conseguir que printf faça uma nova linha depois da variável $4 ?

Nota: Eu apenas faço um eco para listar os usuários, então echo $USERS

    
por Rudi 23.11.2015 / 21:04

1 resposta

4

Substituir

echo $USERS

com:

echo "$USERS"

Em variáveis não citadas, como em echo $USERS , o shell executa divisão de palavras . Isso significa que todos os caracteres de espaço em branco, como newline, são substituídos pelo primeiro caractere no IFS (por padrão: um espaço). Se você quiser manter suas novas linhas, use aspas duplas.

    
por 23.11.2015 / 21:09