アイテムが見つかるまで繰り返し、次にそのアイテムを使用します。

アイテムが見つかるまで繰り返し、次にそのアイテムを使用します。

アイテムを含むファイルがあるとしましょう。

文書:

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

関連情報