
エントリのあるファイルがあるとします。
ファイル:
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