我找到了通过用户名发送消息给当前登录用户的方法:
who | grep username | cut -c1-20 | while read line; do printf "Message Text" | write $line ; done
但是,无论如何我可以按组向当前登录的用户发送消息吗?
感谢您的帮助。
答案 0 :(得分:1)
如果您将变量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
答案 1 :(得分:1)
所以......要向特定群组中的每个登录用户发送消息,在他们登录的每个tty上...
public static string CreateNotificationMailMessage(NotificationMailMessage mailMessageObject)
{
var table = new HtmlTable();
var mailMessage = new StringBuilder();
string html;
if (mailMessageObject.InvalidCompanies.Any())
{
HtmlTableRow row;
HtmlTableCell cell;
foreach (var invalidCompany in mailMessageObject.InvalidCompanies)
{
row = new HtmlTableRow();
cell = new HtmlTableCell();
cell.InnerText = invalidCompany.BusinessName;
row.Cells.Add(cell);
cell.InnerText = invalidCompany.SwiftBIC;
row.Cells.Add(cell);
cell.InnerText = invalidCompany.IBAN;
row.Cells.Add(cell);
table.Rows.Add(row);
}
}
using (var sw = new StringWriter())
{
table.RenderControl(new HtmlTextWriter(sw));
html = sw.ToString();
}
mailMessage.AppendFormat(html);
return mailMessage.ToString();
}