
Допустим, у меня есть файл, в котором есть записи,
Файл:
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)
Я хочу, чтобы цикл выполнялся до тех пор, пока пользователь не нажмет число от 1 до 3 (количество строк в этом файле)
и когда пользователь вставляет, например, 1, я хочу, чтобы система отправила сообщение этому конкретному pts (используя команду write user pts/1).
Это вообще возможно как-то? Понятия не имею, с чего начать.
решение1
Мне кажется, вы все слишком усложняете.
Вот короткий способ запросить номер, а затем отправить сообщение на этот терминал:
#!/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
Примеры исполнения ниже:
./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
При правильном вводе ( 1
выше) я получаю следующий вывод /dev/pts/1
:
[maulinglawns@ArchLinux slask]$ tty
/dev/pts/1
[maulinglawns@ArchLinux slask]$ Hello pts1