Shell script question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell script question
# 1  
Old 03-05-2015
Shell script question

Hi all,

can you plz check whether the below code is correct & some inputs.
I need to read the below file and process it.

input :

Code:
 
/home/ibm/var.txt
 
urgent 
not urgent 
not needed.

Code:
 
#!/usr/bin/ksh
VAR=/home/ibm/var.txt
if [[ -s $VAR ]]
then
cat $VAR | while read VAR
do
if [[ $VAR = 'urgent' ]
then
echo "process";
else
echo "not process";
fi
done

# 2  
Old 03-05-2015
- Don't use the same variable for the file and the loop variable.
- If opening a test with [[ make sure you close it with ]] .
- Close the outer if with a fi .
- don't use cat - redirect read's input from $VAR.
# 3  
Old 03-05-2015
As per your suggestion I have changed the all requested one. I am not sure abt the last point.
Code:
#!/usr/bin/ksh
VAR=/home/ibm/var.txt
if [[ -s $VAR ]]
then
cat $VAR | while read input
do
if [[ $input = 'urgent' ]]
then
echo "process";
else
echo "not process";
fi
done
fi

But getting error.
# 4  
Old 03-05-2015
Code:
while read input
  do ....
  done < $VAR

WHAT error do you get?

---------- Post updated at 14:31 ---------- Previous update was at 14:30 ----------

Correct indentation always improves readability of programs/scripts/code.
# 5  
Old 03-05-2015
the script works now.

Thanks a lot for your help rudic

Code:
#!/usr/bin/ksh
VAR=/home/ibm/var.txt
while read input
do
if [[ $input = 'urgent' ]];
then
echo "process| $input";
else
echo "not process";
fi
done > $VAR


Last edited by ramkumar15; 03-05-2015 at 10:25 AM..
# 6  
Old 03-05-2015
I'm pretty sure the script given above does NOT work! You are redirecting stdout to your input file, and read from stdin, i.e. your terminal if run interactively.

I'd propose to exert utmost care if reproducing scripts/commands/data in these fora.
# 7  
Old 03-05-2015
With properly indented code you won't miss a closing fi,
and you easily see that the while-block is redirected.
Code:
#!/bin/ksh
VAR=/home/ibm/var.txt
if [[ -s $VAR ]]
then
  # read from $VAR
  while read input
  do
    if [[ "$input" = "urgent" ]]
    then
      echo "process"
    else
      echo "not process"
    fi
  done < $VAR
fi

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script question

As per code it is getting matched. not sure why it assigning to cols=0. Any inputs please. Input : passed is shell.sh c tablename. if ; then cols=1 table=$2 else cols=0 table=$1 fi (1 Reply)
Discussion started by: ramkumar15
1 Replies

2. Homework & Coursework Questions

question in shell script

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: Write a Bourne shell script which: • Has one command line argument. • If the command line argument is a... (5 Replies)
Discussion started by: abood1190
5 Replies

3. Homework & Coursework Questions

question on shell script

hiiiiiiiiiiiii,,I found an error on my following script but couldnt find it!!! Can you please help me as soon as possible?! echo "enter a number " read n i=0 first=0 second=1 result=0 prime="true" echo –n " $first $second " while do result=`expr $first + $second` first=$second... (10 Replies)
Discussion started by: moonlips
10 Replies

4. Homework & Coursework Questions

Question on shell script

Hiiiiiiiiiiiii all, Please i want your help fast, the teacher gave us this assignment can u help me to write it? this is the question: Write a shell script to point all prime numbers from the fibonacci series of integer N? using Red hat Os Thanks all and waiting for ur answers... (1 Reply)
Discussion started by: moonlips
1 Replies

5. Shell Programming and Scripting

shell script question

I have script as following.. server_status= some command | grep "Total error: 0" if ; then echo " Server $(hostname) is Down" >>Result fi else echo " Server is OK on $(hostname)" >>Result the if command seems to be not working properly for some... (13 Replies)
Discussion started by: s_linux
13 Replies

6. Shell Programming and Scripting

shell script question

Hi, The contents of my file is below: Name,Location,Degree,Gender,Awards Robert,Philadelphia,Accounting,Male,5 Jane,Chicago,Business,Female,2 Allan,New York,Engineering,Male,6 Tom,Detroit,Computer Science,Male,10 Nancy,Milwaukee,Engineering,Female,4 I want to add a "ID" in the 1st line... (2 Replies)
Discussion started by: xinoo
2 Replies

7. Shell Programming and Scripting

Shell Script question

Hello Experts, I am new at this and need some help. I am looking for a delete command that allows me after I grep for the hostname to delete all the lines between two characters. for example I want to delete the first line all the way up to the } character host test019 { hardware ethernet... (10 Replies)
Discussion started by: ryanique
10 Replies

8. UNIX for Dummies Questions & Answers

Linux Shell Question: how to print the shell script name ?

Suppose I have a script named "sc.sh" in the script how to print out its name "sc.sh"? (3 Replies)
Discussion started by: meili100
3 Replies

9. Shell Programming and Scripting

Shell script question

Hello, i am doing a project for school and i cannot figure out whats wrong with my 2 programs they dont seem to work at all. the first program is called isprime and naturally it checks to see if hte number is prime or not here is my code: #!/usr/bin/bash num=$1 echo you typed if ... (2 Replies)
Discussion started by: jbou1087
2 Replies

10. Shell Programming and Scripting

shell script question

I am using ksh. There is a report having amounts in the following format, 34343.67- 2343.45 23434.89- I want to sum up all the amounts. For this I first need to find out if there is a minus sign at the end and prefix it before summing up. How to achieve this? I thought of using an... (2 Replies)
Discussion started by: tselvanin
2 Replies
Login or Register to Ask a Question