HELP for my script


 
Thread Tools Search this Thread
Special Forums UNIX Desktop Questions & Answers HELP for my script
# 1  
Old 07-09-2014
HELP for my script

guys need help how to add user to my script.
note: this is not a home work... I'm just self studying unix/linux programming. thanks in advance.
and how can i add this script to the add user list below. dont know how to combine case and ifelse.


Code:
if [ $(id -u) -eq 0 ]; 
 then 	read -p "Enter username : " username 	
            read -s -p "Enter password : " password 	
            egrep "^$username" /etc/passwd >/dev/null 	
            if [ $? -eq 0 ]; then 		
               echo "$username exists!" 		
              exit 1 	
           else 		
              pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) 		
             useradd -m -p $pass $username 		
             [ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!" 	
         fi
 else 	
           echo "Only root may add a user to the system" 	
           exit 2 
 fi

-------------------------------------------------------------
my exercise:
Code:
#!/bin/bash
clear
PS3="Enter your choice> "
select i in "Current Logins" "Last Logins" "Generate List of Users" "Create User Accounts" "Exit"
do


case $i in
        "Current Logins") who;;
        "Last Logins") lastlog;;
        "Generate List of Users") awk -F':' '{ print $1}' /etc/passwd;;
        "Create User Accounts") useradd;;
        Exit) exit;;
        
*) echo "Invalid choice";;
esac         
done

Moderator's Comments:
Mod Comment Please use code tags, not colors

Last edited by jim mcnamara; 07-10-2014 at 12:54 AM.. Reason: Reformat one long line into readable code
# 2  
Old 07-10-2014
You could just add the code there, but a more structured way would be if you turn you add_user part in to a function and call that in the case statement:

Code:
add_user() {
  ....
}

and later on
Code:
"Create User Accounts") add_user;;

I used a slightly different name, since on many systems useradd is an actual command.
This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 07-10-2014
Sir

i tried using useradd but result is error


Code:
#!/bin/bash clear PS3="Enter your choice> " select i in "Current Logins" "Last Logins" "Generate List of Users" "Create User Accounts" "Exit" do   case $i in         "Current Logins") who;;         "Last Logins") lastlog;;         "Generate List of Users") awk -F':' '{ print $1}' /etc/passwd;;         "Create User Accounts") useradd;;  <------------ (here)         Exit) exit;;          *) echo "Invalid choice";; esac          done

where should i put

Code:
add_user() {   .... }


sorry im new to scripting...

Last edited by Scrutinizer; 07-10-2014 at 05:54 AM.. Reason: CODE tags
# 4  
Old 07-10-2014
Your return key appears to malfunction Smilie

You should first define you own add_user function:
Code:
add_user() {
  ....
}

And then you can call that inside your case statement:
Code:
"Create User Accounts") add_user;;

This User Gave Thanks to Scrutinizer For This Post:
# 5  
Old 07-10-2014
Sir what i did is like this and the result was segmentation fault..

Code:
#!/bin/bash

clear
add_user() {
  add_user;
}
PS3="Enter your choice> "
select i in "Current Logins" "Last Logins" "Generate List of Users" "Create User Accounts" "Exit"
do


case $i in
        "Current Logins") who;;
        "Last Logins") lastlog;;
        "Generate List of Users") awk -F':' '{ print $1}' /etc/passwd;;
        "Create User Accounts") add_user;;
        Exit) exit;;
        
*) echo "Invalid choice";;
esac         
done


Last edited by JONATHAN0919; 07-11-2014 at 12:26 AM..
# 6  
Old 07-11-2014
You need to mention user creation steps in the below function
Code:
add_user() {
## User creation steps / whatever you think are relevant
}

This User Gave Thanks to SriniShoo For This Post:
# 7  
Old 07-11-2014
Hi Sir sorry i really don't know what to do since I'm a beginner..

can u give a sample?

or can i add if else for that particular part?
like the script from the top?

is it possible to apply for the add user area only? without changing the whole?
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question