Faça um loop até encontrar a entrada e então use a entrada

Faça um loop até encontrar a entrada e então use a entrada

Digamos que eu tenha um arquivo com entradas,

Arquivo:

user pts/1        2016-10-22 19:47 (ip)
user1 pts/2        2016-10-22 20:04 (ip)
user1 pts/3        2016-10-22 20:04 (ip)

eu quero fazer um loop até que o usuário pressione um número entre 1-3 (número de linhas nesse arquivo)

e quando o usuário inserir 1, por exemplo, quero que o sistema envie uma mensagem para aquele ponto específico (usando o comando write user pts/1).

Isso é possível de alguma forma? Não tenho ideia por onde começar.

Responder1

Acho que você está complicando demais as coisas.

Aqui está uma maneira rápida de solicitar um número e enviar uma mensagem para esse terminal:

#!/bin/bash

function getNumber()
{
    pattern="[1-3]"
    echo "Enter a number between 1 and 3"

    read number

    if [[ ! "$number" =~ $pattern ]]; then
        echo "Wrong number"
        getNumber
    fi  
}

getNumber

echo "Hello pts$number" > /dev/pts/$number

Exemplos de execução abaixo:

./pts.sh 
Enter a number between 1 and 3
0
Wrong number
Enter a number between 1 and 3
4
Wrong number
Enter a number between 1 and 3
1

Após a entrada correta ( 1acima), recebo esta saída em /dev/pts/1:

[maulinglawns@ArchLinux slask]$ tty
/dev/pts/1
[maulinglawns@ArchLinux slask]$ Hello pts1

informação relacionada