Кто | awk скрипт bash

Я получаю следующую ошибку при попытке запустить мой скрипт:

./watchuser: line 12: syntax error near unexpected token `echo'
./watchuser: line 12: `echo ("$User online since:" who| awk ' { print "User: " $1" -    Terminal: "$2" - Login @ " $3" "$4}') '

Вот мой скрипт, он должен показывать пользователей, которые находятся в сети в формате Epoch.

#!/bin/bash
for User in $(cd /home;ls --hide=lost+found)do
echo ("$User online since:" who| awk ' { print "User: " $1" - Terminal: "$2" - $
NOW=$ ( date +%s -d "Jan 1, 1980 00:00:01")
USR=$ ( who |awk ' {print $1, ":",$5,$6,$9 } ' | grep $U)
USRDATE=$(echo $USR | cut -d ":" -f2)
(( USRDATE = $(date --date "$USRDATE" +%s) / 86400 ))
(( NOW = NOW/86400 ))
(( DAYS = NOW - USRDATE ))
done
0
задан 16.04.2020, 04:00

1 ответ

Да, конечно, вы получаете ошибки. Ваш сценарий беспорядок. Я не могу точно понять, что вы собираетесь делать, но, возможно, этот вариант даст вам представление, в чем вы не правы:

#!/bin/bash

for User in $(cd /home;ls --hide=lost+found); do
    echo "$User online since:" 
    who | awk '{ print "\tUser: "$1" - Terminal: "$2" - "$3" "$4}'
    NOW=$(date +%s -d "Jan 1, 1980 00:00:01")
    USR=$(lastlog |awk ' {print $1, ":",$5,$6,$9 } ' | grep $User)
    USRDATE=$(echo $USR | cut -d ":" -f2)
    (( USRDATE = $(date --date "$USRDATE" +%s) / 86400 ))
    (( NOW = NOW/86400 ))
    (( DAYS = NOW - USRDATE ))
done
0
ответ дан 16.04.2020, 04:00
  • 1
    Я пытаюсь получить отчет пользователей, которые зарегистрированы и для сколько секунд. – DebanjanB 16.04.2020, 04:01
  • 2
    @Macenbro хорошо, попробуйте, но, без синтаксических ошибок, в конечном счете прочитайте некоторые учебные руководства об ударе и используйте man <command> когда Вы don' t знают что-то о команде. Кроме того, прежде для использования команд в сценарии протестируйте те команды в терминале. – Bux 16.04.2020, 04:01
  • 3
    хорошо, я все еще получаю синтаксические ошибки с Вашими исправлениями, но что может мы делать: P. Вы сделали что-то героическое просто выяснение, что хотела OP. – Bux 16.04.2020, 04:01

Теги

Похожие вопросы