Sorry about the first post, here's one using the template, the code has changed a little bit. I got the Shell error loop working, but not the way it's supposed to be. It's supposed to repost the list and everything. Same with the username error message.
1. The problem statement, all variables and given/known data:
Write a shell script to add individual users to a Linux system. The script should prompt for the username to create and ensure the username is unique on the system. (Be sure your check for uniqueness actually works-bo, bob, and bobby should all be creatable, if they do not already exist on a system.)
The script should also obtain the user's full name and obtain the preferred user shell. (Be sure to display a valid list of shells prior to shell selection.)
2. Relevant commands, code, scripts, algorithms:
I mainly need help with an error loop, not sure what should be put in here.
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):
Bismarck State College, Bismarck ND, US, Nick See, CIS 223-01
Here's a small script that might give you an idea about doing your user name error loop. It's not the only way, but should serve as a clue. It continues to prompt until you enter the command "quit."
You also need to think about the full name. I'm assuming it will have a space which unless properly handled on the command line to useradd might cause problems.
could I just put something like
.. no, that wouldnt work because then there is no if statement to move on to the next part bleh I really am not understanding this..
Actually, you don't need the if. If grep returns a non-zero (no match) then the while will stop executing and the username in the variable will not exist in /etc/passwd.
Your problem here is that if the user "scooter" exists but "sco" does not, it will not let you create "sco" because the command cut -d: -f1 | grep "sco"would return non-zero (sco would be a match for scooter). Have a look at the manual page for grep and see if there are any options that you might add to ensure that "sco" and "scooter" would not be a match.
Alright so I pretty much have the script working, it's not exactly how the teacher wants. It doesn't loop the whole bash shell list and the Enter username parts. But like you said, I am running into the grep error, any hints for a quick fix to that would be awesome, right now I'm searching all the pages on grep I can looking for the correct filter to put in.
Could I just put it like | grep -x $userName ? because according to linuxabout.com -x will only take the whole thing.
Anyways, in case anyone cares here's the code I came up with so far.
edit: grep -x did nothing, even tried grep -x "^$userName$", that didn't work. My textbook only has 5 pages about grep, none of which describe they just say use it, and the only extension they use is -i which makes the command disregard caps. hrmm.
Interesting. I did have another option in mind (-w), but -x should have worked too since cut output is just the one word which would/should satisfy -x too. When I tried -x with a snipit I copied from you post it worked just fine.
---------- Post updated at 22:03 ---------- Previous update was at 21:56 ----------
Looked more closely at your -x example. You might have needed "^$userName\$"
right now I'm just stuck on the grep issue.. I've tried everything -w, -x, -x ^'$userName\$', -w ^$userName\$, ^$userName$@, ^$userName\$@, ^$userName$*
Any clues as to what I could use? If user Bob exists Bo cannot be created. Smashing my head on my desk right now. The script works.. but like I said, I can't create Bo if Bob already exists.
Gents,
I have been working in a Solaris/Unix environment for about 9 months. I took some linux classses online before getting the job. But, I am not very good at scripting. I want to learn how to script. Do you think that I should start with Shell scripting or Perl? I wanted to continue with... (2 Replies)
I just upgraded to Android 2.2 from 2.1. The GPS issue that was troublesome in 2.1 seems to have been fixed. Some of web browsing seems faster, but it could just be my connection is better today ;) Flash works in some browsers but not very good and it is too slow for Flash apps designed for... (0 Replies)
Hi all,
I would like to start developping some good scripting skills. Do you think it would be best to start with shell scripting or Perl? I already got a fundation, really basics, in perl. but I am wondering what would be best to be good at first.
Can you please help me determine which one to... (14 Replies)
Hi
How to call a shell scripting through a Perl scripting? Actually I need some value from Shell scripting and passes in the Perl scripting. So how can i do this? (2 Replies)
Hello all.
Like Ive stated before, I am new to world of Unix. I was given the tast to create a script that will concatenate 20 files into one file. I know that the cat command is to be used but I am looking for something to get started on. Again, basically I need to wrtie a script that whill... (3 Replies)
in unix bc command is used as calculator and also for conversion, i want to convert 5f to decimal. but bc dont consider 5f as hex value it considers 5F as hex value. I get 5f from other iteration so i cant change that f to F...is there any way to convert 5f to decimal ot 5f to 5F :rolleyes: (2 Replies)
can someone pls help me with the script for a files coming from one system to a particular directory and i want to write a script to move those files to another directory on different system by renaming the files...
pls someone help me on this...
thanking in anticipation.... (1 Reply)
We have a scripting requirement,
Background:
On a particular path, we compress a load of log files into tar.gz.
This is done on an hourly basis throughout the day and it produces files of the following format,
2005-08-05-00-021031.tar.gz as an example. This is done by a script.
We need:
... (2 Replies)