Imprimindo usuários conectados no script bash

0

Eu tenho um arquivo de script como este:

#!/bin/bash
clear 

echo "The script starts now."
echo "Hi, user!"
echo 

echo "I will now fetch you a list of connected users:"
echo 
w

echo "I'm setting two variables now."
COLOUR="black"
VALUE="9"

echo "This is a string: $COLOUR"
echo "And this is a number: $VALUE"
echo 

Eu observei que o efeito de w é que ele imprime o seguinte:

 18:06:36 up  7:43,  3 users,  load average: 0.40, 0.56, 0.64
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
hes      tty7                      10:23    7:43m 12:31   0.96s gnome-session -
hes      pts/0    :0               15:41    4.00s  1.38s 11.46s gnome-terminal
hes       pts/2    :0               17:20   44:52   0.79s 11.46s gnome-terminal

quando eu digito echo "statement" no terminal, ele imprime a declaração. Mas eu não consegui entender aqui. no terminal echo w, imprime w não como acima. Alguém pode me ajudar a entender como isso funciona?

    
por user2799508 06.01.2014 / 13:47

1 resposta

1

Eu realmente não entendo o que você está fazendo. w é um comando e seu script o executa, o que você esperava?

## This echo prints the string within the quotes: "I will ..."
echo "I will now fetch you a list of connected users:"
## This echo prints an empty line
echo 
## This runs the command 'w' which prints connected users
w

echo w , por outro lado, simplesmente imprimirá a letra w , já que você não está executando o comando. Se você quiser echo da saída do comando, execute echo $(w) . Isso, no entanto, é inútil, já que perderá a formatação e simplesmente executar w é suficiente.

    
por 06.01.2014 / 13:54

Tags