のグループにメッセージを送る:私は、現在のユーザー名でログインしているユーザーにメッセージを送信する方法を見つけたのLinux
who | grep username | cut -c1-20 | while read line; do printf "Message Text" | write $line ; done
しかし、とにかく私は現在、グループでログインしているユーザーにメッセージを送信することができますがありますか?
ありがとうございました。
のグループにメッセージを送る:私は、現在のユーザー名でログインしているユーザーにメッセージを送信する方法を見つけたのLinux
who | grep username | cut -c1-20 | while read line; do printf "Message Text" | write $line ; done
しかし、とにかく私は現在、グループでログインしているユーザーにメッセージを送信することができますがありますか?
ありがとうございました。
に属するユーザにリストを削減します...彼らはにログインしているすべてのTTY上で、特定のグループにログインしているユーザーごとにメッセージを送信します。 ..
#!/bin/sh
usage() {
cat <<-EOT
Usage: writegroup groupname [message]
where [message] will be taken from stdin if not provided on the command line.
EOT
}
if [ $# -eq 0 ]; then
usage
exit 1
fi
groupname="$1"
shift
message="$*"
if [ -z "$message" ]; then
read message
fi
who | while read user tty junk; do
if groups "$user" | grep -wq "$groupname"; then
echo "$message" | write "$user" "$tty"
fi
done
はあなたが興味を持っているグループに変数group
を設定提供、あなたはこの試みることができます。
for i in $(who -u | cut -d " " -f1 | sort | uniq); do if echo $(groups $i | cut -d " " -f3-) | grep $group >/dev/null; then echo "Message Text" | write $i; fi; done
$(who -u | cut -d " " -f1 | sort | uniq)
がログインしているユーザーのリストを与えるを
$(groups $i | cut -d " " -f3-)
すべてのグループにユーザーを与えます属する。
grep
文はそう$group
/etc/groupでは、内容はgroup:x:111のようになります。 etc/group-の内容は、username:x:111のようなものです。 group.usernameが見つからないため、スクリプトを使用してメッセージが送信されませんでした。助けてください。 –
私のubuntuでは '/ etc/group'は' sudo:x:27:user1、user2'の形式です。それはあなたのシステムで同じですか?そうでない場合、そのファイルのユーザーを少なくとも2人含むサンプル行を入力してください。 – oliv
さらに、 'groups'コマンドは、OSとOSが異なるシステムファイルや、ディストリビューションからディストリビューションまでのシステムファイルを解析するよりも優れています。 – ghoti
コマンド 'groups $ line'は、ユーザが所属するグループのリストを返します。必要なグループがリストにあるかどうかを確認できます。 – Barmar