Simple loop to mail all active users.

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!

  1. The problem statement, all variables and given/known data:
    Send a fortune to all active/logged in users

  2. Relevant commands, code, scripts, algorithms:
    So I understand I need to use the who command to see all the active users online. Then mail those users a fortune using the built in fortune command. The issue I'm having is how I would put this into a for loop?
    Do I simply create a log of all active users and awk that? I'm sorry I am having a really hard time with shell scripting and cant grasp my head around the logic behind this simple one line of code.

  3. The attempts at a solution (include all code and scripts):

  4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):
    Modesto Junior College, Modesto (CA), US, Dale Phillips, and CMSCI-210:

Thank you for the help. I know theres not to much information but thats why im here :). Try and get a push in the right direction.

Hi, you can use shell variables to capture the necessary information from the command and use these variables with the mail command. This should be done in a loop, either a for loop or a while loop using the read command. There are many examples of either form of loops on these forums.

So you seem to know how a for loop is structured. You could use "command substitution" to provide a list of items from who for the for construct. While awk comes in handy frequently, here you can do without it. A "command substitution" of fortune could be used for the mail command.

Appreciate the replies so soon xD. Do you have a useful link to "command substitution"? Have not heard that term yet.

Although usually frowned upon in these forums:
man bash (or man ksh )

Just for clarity, it is usually frowned upon in regard that we try not to say "Read the manual", bot that using command substitution is frowned upon - I use command substitution all the time.

Kind regards,
Robin (having a frown :mad:) :wink:

Sorry for such a late reply had life getting in way. But what exactly am I looking for in the man. I've looked all over and cannot find anything about command substitution but I may just be blind also :p.

You havent been searching much, in less than 15 seconds I got this:
Command substitution - Linux Shell Scripting Tutorial - A Beginner's handbook

But many more exist out there...
That said this link should solve all your issues...

man bash and search for command substitution .

It's been around in sh already, so it MUST be there. What shell and version do you use?