awk не делает новую строку

Я пытаюсь распечатать пользователей, которые в настоящее время вошли в систему (каждый зарегистрированный пользователь каждого терминала). Это то, что я сейчас имею:

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 $USERS

  • Сценарий оболочки для уничтожения процессов, кроме тех, которые принадлежат пользователю
  • используйте «mail» для чтения электронной почты из командной строки
  • Экспортируйте плейлист m3u в каталог, чтобы они отображались в списке воспроизведения
  • проанализировать действительно простую грамматику разметки со сценарием оболочки
  • Проверка наличия файла в нескольких каталогах
  • Выполнение задания Cron каждые 5 секунд
  • Добавить информацию из .dat в CSV-файл
  • Найти строку в одном разделе файла с несколькими разделами
  • One Solution collect form web for “awk не делает новую строку”

    замещать

     echo $USERS 

    с:

     echo "$USERS" 

    В отношении некотируемых переменных, например, в echo $USERS , оболочка выполняет разбиение слов . Это означает, что все символы пробела, такие как newline, заменяются первым символом в IFS (по умолчанию: пробел). Если вы хотите сохранить свои новые строки, используйте двойные кавычки.

    Linux и Unix - лучшая ОС в мире.