shell scripting


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers shell scripting
# 1  
Old 08-10-2010
shell scripting

i made this script

zoo.sh:
Code:
#!/bin/bash    
filename=~/.animals 
echo -n "Enter an animal name: "    
read name    
is_in_file=`grep $name $filename`  
if [ -n "$is_in_file" ]; then 
  echo $is_in_file | cut -d= -f2    
else  
  echo -n "Give me description for $name: " 
  read description 
  echo " $name=$description" >> $filename    
fi

is there a way i can make it work different?

i don't want my script to ask for the name. Name should be passed as the first command line argument to the script and description as the second argument

./zoo.sh animal Description

i am learning unix on my own and the book i am using does not make it clear.
any help will be appreciated.

Moderator's Comments:
Mod Comment For the benefit of future visitors, and references from search engines, please use a more descriptive title. Thank you.

Last edited by Scott; 08-10-2010 at 05:03 PM.. Reason: Please use code tags
# 2  
Old 08-10-2010
Commandline parameters are $1, $2, and so forth. Substitute these for your $name and $description variables.
This User Gave Thanks to Corona688 For This Post:
# 3  
Old 08-10-2010
That's to say, something like:

Code:
#!/bin/bash
if [ $# -ne 2 ]; then
  echo "Usage:  $0 Animal Description"
  exit
fi

filename=~/.animals 
is_in_file=`grep "$1" $filename`  
if [ -n "$is_in_file" ]; then 
  echo $is_in_file | cut -d= -f2    
else  
  echo " $name=$2" >> $filename    
fi

i.e. If the command-line arguments contain spaces, you should quote them.

i.e.
Code:
./zoo.sh "snow leopard" "beautiful but wouldn't like to cross one"

This User Gave Thanks to Scott For This Post:
# 4  
Old 08-10-2010
Code:
#!/bin/bash    
filename=~/.animals $1 $2   
is_in_file=`grep $name $filename`  
if [ -n "$is_in_file" ]; then 
echo $is_in_file | cut -d= -f2    
else  
echo " $1=$2" >> $filename

not working

Last edited by Scott; 08-10-2010 at 05:50 PM.. Reason: Code tags, please...
# 5  
Old 08-10-2010
Your script is

Code:
#!/bin/bash
if [ $# -ne 2 ]; then
  echo "Usage:  $0 Animal Description"
  exit
fi

filename=~/.animals 
is_in_file=`grep "$1" $filename`  
if [ -n "$is_in_file" ]; then 
  echo $is_in_file | cut -d= -f2    
else  
  echo " $name=$2" >> $filename    
fi

$1, $2, etc. are used when calling the script:

Code:
./zoo.sh animal Description

They have nothing to do with your input file
Code:
filename=~/.animals

What you seem to be trying to do is update the input file with a new description for the given animal?

I would suggest you change the format of your input file (.animals)

Code:
$ cat ~/.animals
cat|hates the dog
dog|ate the cat

Code:
$ cat zoo.sh
#!/bin/bash
if [ $# -ne 2 ]; then
  echo "Usage:  $0 Animal Description"
  exit
fi

filename=~/.animals
awk -F"|" -v animal="$1" -v description="$2" '$1 == animal { $2 = description } 1' $filename > $filename.new
mv $filename.new $filename

This User Gave Thanks to Scott For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Shell script to read lines in a text file and filter user data Shell Programming and Scripting

sxsaaas (3 Replies)
Discussion started by: VikrantD
3 Replies

2. Shell Programming and Scripting

help me in Shell Scripting

Hi there please have a look at the code..i want to create Using a named pipe. Run a find in the background starting in the working directory While this is happening wait for input from the user to ask him which file to find. If the user does not enter any data in 10 seconds ask the user again.... (1 Reply)
Discussion started by: kattak1511
1 Replies

3. Shell Programming and Scripting

Shell scripting

Hi, if in a network there are lots of PCs connected with either windows or linux as operating system.Then what will be the shell script for the same and also if the PC has linux in it then we have to find if it is occupied or unoccupied. If the PC has windows in it then we have to find if it is... (6 Replies)
Discussion started by: akansha singh
6 Replies

4. UNIX for Dummies Questions & Answers

Shell Scripting

Hey I have a data in the file named as outputFile.txt. The data is in the format 123456,12345678912345,400,09/09/09,INACTIVE. I want this output without commas ie 12345612345678912345400090909INACTIVE. Please tell me what to do and clear explain all the terms, as I am new to it. (6 Replies)
Discussion started by: sampandey31
6 Replies

5. Web Development

Perl scripting or shell scripting?

i am going to study any one of the scripting languages mentioned above(shell 0r perl scripting) . Which is having more scope for a fresher? (1 Reply)
Discussion started by: Anna Hussie
1 Replies

6. What is on Your Mind?

Shell Scripting vs Perl scripting

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)
Discussion started by: Pouchie1
2 Replies

7. Android

Android Scripting Environment: Shell Scripting and Android

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)
Discussion started by: Neo
0 Replies

8. What is on Your Mind?

Shell scripting vs Perl scripting

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)
Discussion started by: Pouchie1
14 Replies

9. Shell Programming and Scripting

Call Shell scripting from Perl Scripting.

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)
Discussion started by: anupdas
2 Replies

10. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies
Login or Register to Ask a Question