循環直到找到條目,然後使用該條目

循環直到找到條目,然後使用該條目

可以說我有一個包含條目的文件,

文件:

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

相關內容