script question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting script question
# 1  
Old 04-18-2008
script question

Anyone know why this won't work?

#!/usr/bin/ksh

for db in `cat /etc/oratab|egrep ':N|:Y' | grep -v \* | cut -f1 -d":"`

do
echo "************************"
echo "database is $db"
echo "************************"
done


I am getting an error on the line that starts with the "for" statement. The command in quotes works fine from the command prompt.

TIA

Last edited by ace2000; 04-18-2008 at 12:54 PM..
# 2  
Old 04-18-2008
Based on what bash would do: Backticks '...' are equal to dollar sign-brackets $(...). You do use both nested which should result in the shell trying to to execute your db names rather than returning them.
# 3  
Old 04-18-2008
Quote:
Originally Posted by fabtagon
Based on what bash would do: Backticks '...' are equal to dollar sign-brackets $(...). You do use both nested which should result in the shell trying to to execute your db names rather than returning them.
You're right... I was testing that way. Ok, in the example above I edited them out, and it still won't work.

I'm getting this error message:

oratab_loop.ksh[2]: ^M: not found.
' is not expected.: 0403-057 Syntax error at line 5 : `
# 4  
Old 04-18-2008
^M is the end-of-line mark of Windows. Seems this file does not have unix EOL (well, makes sense for plattform independence of Oracle's tools).

"^M: not found." sounds a bit like it tries to execute it. Does this error message change as you change from backticks and dollar to only one of them?

Maybe the easiest way would be to use some dos2unix converter in the pipe, like "for db in `dos2unix /etc/oratab|egrep ...`
# 5  
Old 04-18-2008
^M is the MS-DOS/Windows end-of-line sign. Pipe the file through some converter, i.e. use dos2unix (ask manpage for params) instead of cat
# 6  
Old 04-18-2008
Yes, but why does it work fine from the command line then? I think it's a syntax error in some way.



Quote:
Originally Posted by fabtagon
^M is the end-of-line mark of Windows. Seems this file does not have unix EOL (well, makes sense for plattform independence of Oracle's tools).

"^M: not found." sounds a bit like it tries to execute it. Does this error message change as you change from backticks and dollar to only one of them?

Maybe the easiest way would be to use some dos2unix converter in the pipe, like "for db in `dos2unix /etc/oratab|egrep ...`
# 7  
Old 04-18-2008
It's not allowed to bump up questions! Please read the rules:

https://www.unix.com/unix-dummies-que...om-forums.html
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

C first Script Question

Gents for 2013 I have embarked on learning C and just wrote my first script and need some help. In the learning process, I am trying to understand where I went wrong with my script. The flow of the script is as such: Enter a number --> check if it is a number --> if it is not a number,print what... (4 Replies)
Discussion started by: metallica1973
4 Replies

2. Shell Programming and Scripting

Script question

I know some tricks like this : echo " E"; sleep 0.1; clear; echo " Er"; sleep 0.1; clear; echo " Err"; sleep 0.1; clear; echo " Erro"; sleep 0.1; clear; echo " Error ";... (2 Replies)
Discussion started by: hakermania
2 Replies

3. Shell Programming and Scripting

script question

How can I include a counter in this if statement so only sends out 5 notifications. # the if statement will check for the lines status, if status is down sends email if then LIST="user@email.com" mail -s "rje_lines_down" $LIST < ${tmpfile} #sends an email to list fi thanks... (2 Replies)
Discussion started by: d4n3lu
2 Replies

4. UNIX for Dummies Questions & Answers

Script Question

I have a script that will calculate some information about the current directory that I run the script in. How can I have it where it gets an argument from the user(such as a directory) and the script calculate the information for the given directory? Any help is greatly appreciated. (8 Replies)
Discussion started by: tr32
8 Replies

5. Shell Programming and Scripting

Script question

I am trying to write a script to check the STIG our unix boxes. I want to put in checks to determine if certain files or directories are there. For example: If /opt/SUNWexplo exists echo "Sun Explorer exists" else echo "Sun Explorer is not installed" I am sure I could write... (2 Replies)
Discussion started by: rkruck
2 Replies

6. Shell Programming and Scripting

Script Question

Here is my problem. I have a txt file with a list of user names in both upper case and lower case. I need to remove the names from the passwd file. I want to be able to run a script that looks at my txt list and then removes those names from the passwd file. It would be nice if it backed up the... (3 Replies)
Discussion started by: wgartin
3 Replies

7. UNIX for Dummies Questions & Answers

Script question

Can anyone help with these scripts? Im new to this and struggling. Thank you for your help. Pre-requisites Create a file with x amount of lines in it, the content of your choice. (Have already done this) Script 1 Write a script that takes two arguments. The first being a line of text,... (3 Replies)
Discussion started by: beginner1
3 Replies

8. Shell Programming and Scripting

script question

I'm using solaris and i have an old script that an ex employee wrote but i can't seem to get it working. well is just one part of the script if ($?MC_PROD_DIR == 0) setenv MC_PROD_DIR $HOME/PRODUCTION source $MC_PROD_DIR/scripts/localenv ** i understand what this part of the script is... (1 Reply)
Discussion started by: fusionjd
1 Replies

9. UNIX for Dummies Questions & Answers

script question

Correct me if i'm wrong, but by adding "#!/bin/ksh" at the start of a script will force it to run in the korn shell no matter which shell you are currently using?? (2 Replies)
Discussion started by: shad0w75
2 Replies

10. UNIX for Dummies Questions & Answers

Another script question.

Hi, First off I usually script in the bash shell. Ok, in my script I am checking to see if the filename has a .txt extension. So I was trying: if then echo "Must contain a valid .txt extension" fiandif ] then echo "Must contain a valid .txt extension" fiBut no go the first... (5 Replies)
Discussion started by: Astudent
5 Replies
Login or Register to Ask a Question