qual comando do sistema devo usar para obter a saída desejada dada abaixo

0

Eu preciso escrever um programa do sistema que imite who e w . Imprima o tempo desde o login (no formulário HH: MM: SS) e o nome do host. Permitir uma opção de linha de comando -p que também imprima os processos interessantes que o usuário está executando. Simplesmente destinado às linhas abaixo da linha principal do usuário. por exemplo.

23:45:11 vkbhardwaj-Inspiron-5558
11009 -tcsh
13032 vi a.c
13033 ps axl

eu usei este comando

alias vk="awk '{print int($1/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime;hostname;pgrep -l"

mas está jogando erro para este comando como:

awk: line 1: regular expression compile failed (missing '(')
3600):int((%3600)
awk: line 1: syntax error at or near :
vkbhardwaj-Inspiron-5558
pgrep: no matching criteria specified
Try 'pgrep --help' for more information.

por favor ajude o mais rápido possível

    
por Vimal Bhardwaj 03.05.2016 / 11:28

1 resposta

0

Usar uma função de shell em vez de um alias é mais simples.

Algo próximo ao que você deseja seria:

vk() { lastlog -u "${USER}" | awk -v ORS="" 'END{$1="";$2="";$3="";print}' ; hostname ; if [[ $# > 0 && $1 == "-p" ]] ; then ps -u; fi;}

A data e a hora do último login são impressas em vez de the time since login

    
por Jay jargot 03.05.2016 / 12:39