Modifying bash script to take each line in a file and execute command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Modifying bash script to take each line in a file and execute command
# 1  
Old 03-09-2016
Modifying bash script to take each line in a file and execute command

I need to modify a bash script to to take each line in a file and execute command. I currently have this:

Code:
#!/bin/bash if [ -z "$1" ] ; then echo "Lipsa IP"; exit; fi i=1 ip=$1 while [ $i -le `wc -l pass_file | awk '{print $1}'` ] ; do if [ -n "$ip" ]; then rand=`head -$i pass_file | tail -1` user=`echo $rand | awk '{print $1}'` pass=`echo $rand | awk '{print $2}'`  CMD=`ps -eaf | grep -c mysql`  if [ "$CMD" -lt "50" ]; then ./mysql $ip $user $pass & else sleep 15 fi i=`expr $i + 1` fi done

The password file is in format and named "pfile":

Code:
username password
       username2 password2
              username3 password3

The intranet hosts file is in this format (line-by-line) and named "hlist":

Code:
192.168.0.1
192.168.0.2
192.168.0.3

Any suggestions how I can do this? I really have no clue.

---------- Post updated at 04:50 PM ---------- Previous update was at 04:46 PM ----------

Code:
192.168.0.1
192.168.0.2
192.168.0.3

For some reason I cannot edit the above post. The host file is in this format, line-by-line.
# 2  
Old 03-09-2016
Your script will not work, as the shebang is on the same line as everything else.

So called 'One-Liners' are nice, if they are short, but yours is not.
Please structure your code for easier reading/debuging.

Thank you

EDIT:
Furthermore, please use the forum its search function, just recently (within the last 30 days) we've discussed such a topic.
# 3  
Old 03-09-2016
in a file named like scr.sh try something like:
Code:
#!/bin/bash

while read ip
do
   if [ -n "$ip" ]
   then
      while read user pass
      do
         CMD=`ps -eaf | grep -c mysql`
         if [ "$CMD" -gt "50" ]
         then
            sleep 15
         fi
         ./mysql $ip $user $pass &
      done < pass_file
   fi
done < host_file

This User Gave Thanks to rdrtx1 For This Post:
# 4  
Old 03-09-2016
Actually it works when I execute it for one host per command.

Code:
[/home/virtual/mysqlt]# sh sql2 localhost
[/home/virtual/mysqlt]# ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

I want it to make automatic to use the full lines of the hosts file.

So what it needs to do...

- load the hosts file
- read each line and execute ./mysql etc etc which the procedure is already there.

I have searched google and came up with this:

Code:
for file in *foo*
do   
if [ -f "$file" ];then 
mv "$file" /destination    
fi 
done

I really am new to this and I have no clue where to insert that and adapt it to suit my needs.

---------- Post updated at 05:21 PM ---------- Previous update was at 05:15 PM ----------

Quote:
Originally Posted by rdrtx1
in a file named like scr.sh try something like:
Code:
#!/bin/bash

while read ip
do
   if [ -n "$ip" ]
   then
      while read user pass
      do
         CMD=`ps -eaf | grep -c mysql`
         if [ "$CMD" -gt "50" ]
         then
            sleep 15
         fi
         ./mysql $ip $user $pass &
      done < pass_file
   fi
done < host_file

Yep, its working. Thank you. Also thank you for making this clean.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

With script bash, read file line per line starting at the end

Hello, I'm works on Ubuntu server My goal : I would like to read file line per line, but i want to started at the end of file. Currently, I use instructions : while read line; do COMMAND done < /var/log/apache2/access.log But, the first line, i don't want this. The file is long... (5 Replies)
Discussion started by: Fuziion
5 Replies

2. Shell Programming and Scripting

sed working on command line but file unchanged when execute with Shell script

I have a simple task to replace unix line feed end of line characters with carriage returns. When I run the following “change file in place” sed instruction from the command line all the Line feeds are successfully replaced with Carriage returns. sed -i 's/$/\r/' lf_file.txt But that same... (1 Reply)
Discussion started by: hawkman2k
1 Replies

3. Shell Programming and Scripting

Modifying file from command line using Perl

Hi all, I am having a slight issue updating a file using perl from the command line I need some help with. The item is: DATA_FILE_TYPE=FULL When I run the below command /usr/bin/perl -p -i -e "s/DATA_FILE_TYPE=/DATA_FILE_TYPE=APPEND/g" processfile.cfg It looks to be... (2 Replies)
Discussion started by: kstevens67
2 Replies

4. Shell Programming and Scripting

Bash script to read a file from particular line till required line and process

Hi All, Am trying to write wrapper shell/bash script on a utility tool for which i need to pass 2 files as arugment to execute utility tool. Wraper script am trying is to do with above metion 2 files. utility tool accepts : a. userinfo file : which contains username b. item file : which... (2 Replies)
Discussion started by: Optimus81
2 Replies

5. Shell Programming and Scripting

Bash command line to strip tar.gz file extension?

What's the command syntax for stripping out the tar.gz file extension in a bash command line (not script file). Thanks! prompt/> ls *.tar.gz | <what comes here?> (3 Replies)
Discussion started by: ZillaG
3 Replies

6. Shell Programming and Scripting

bash script to execute a command remote servers using ssh

Hello, I am running into few issues, please suggest me what I am missing. I am running this script on a linux host. Main idea of this script is to, login to each host via ssh and get uid of user, service user that I trying to run this script, has already deployed ssh keys and provide sudo... (8 Replies)
Discussion started by: bobby320
8 Replies

7. Shell Programming and Scripting

Cannot execute/finish script because of last line syntax error: unexpected end of file/token `done'

first of all I thought the argument DONE is necessary for all scripts that have or begin with do statements which I have on my script, However, I still don't completely understand why I am receiving an error I tried adding another done argument statement but didn't do any good. I appreciate... (3 Replies)
Discussion started by: wolf@=NK
3 Replies

8. Shell Programming and Scripting

Reading command line options from bash script

I have the following code and I am calling it using ./raytrac.bash -u and getting problems. For some reason opt_usage is still 0. opt_usage=0 iarg=0 narg=$# while (($iarg < $narg)) do (( iarg = $iarg + 1 )) arg=$argv usrInputFlag=`echo $arg | awk '/=/ {print 1}; ! /=/... (22 Replies)
Discussion started by: kristinu
22 Replies

9. Shell Programming and Scripting

KSH Script to Execute command from specific column in file

Hi Unix Experts,Team I have a file (say comand_file.prm), The file has a command specified in column 6 (say "./execute_script.sh"). I want to execute this command in my script. I am writing a KSH script to achieve this. Could you please assist me with this. (6 Replies)
Discussion started by: Jeevanm
6 Replies

10. UNIX for Dummies Questions & Answers

Bash script to delete file input on command line

1) I wrote a script and gave the desired permissions using "chmod 755 scriptname". Now if i edit the script file, why do i need to set the permission again? Didn't i set the permission attribute.. or if i edit the file, does the inode number of file changes? 2) I am running my unix on a server... (1 Reply)
Discussion started by: animesharma
1 Replies
Login or Register to Ask a Question