The "read" command


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users The "read" command
# 8  
Old 11-13-2003
With the syntax you used, set overwrites the positional parameters just as the example shows. Sometimes you want to do that. (admittedly, not often.)
# 9  
Old 11-13-2003
Hammer & Screwdriver Thanks !

Thanks, the set observation fixed the problem almost at all !!!

The script now works !!!
# 10  
Old 11-14-2003
Question And now what ...

Here I go again...

So, the script is working pretty well now, but I'm testing a case that...
In my opinion should not work, but the program "understands" it anyway and fortunately acts correctly !

Here it is:
When I search for a pattern like "proc.sh" in lines like
"more proc.sh"
"grep proc.sh"
"/bin/ksh ./proc.sh" ---> using grep, it returns all this lines, and that's ok, 'cause in fact they all have this "proc.sh" pattern.

But searching for a pattern like "./proc.sh"
in "/bin/ksh proc.sh", for example, the grep still returns this line as result ! Why this happens ? I'm not passing any parameter, so
wasn't grep supposed to find for an occurance of the ENTIRE pattern ./proc.sh ? I thaught it was ... Smilie
Well, here's the current code for the script:
Code:
#!/bin/ksh

CUR_SHELL="/bin/ksh"
V1="VAR1"
set -x

ps -e -o args | grep "$1" | tr -s " " | cut -d" " -f1 |
while read -r V1
do
    #V1=`echo $V1 | cut -d'/' -f2`
    if [ "$V1" = "$CUR_SHELL" ]; then
    echo "Error - Program is already running."
    exit 1
    fi 
done

If anyone could help...
Thanks in advance,

435 Gavea.

added code tags for readability --oombera

Last edited by oombera; 02-21-2004 at 02:19 AM..
# 11  
Old 11-14-2003
I don't follow you. If you think that the grep command is broken, try this as a way to test it:
echo "/bin/ksh proc.sh" | grep "./proc.sh"
this does not return the echo line for me. But if I remove the ./ from the grep, I do get the line.
# 12  
Old 11-18-2003
Data

I wasn't clear enough in last question, forget it... Smilie
Now I'm stuck in the following problem:
Code:
#!/bin/ksh

CUR_SHELL = "/bin/ksh"
V1="VAR1"

...

ps -e -o args | grep "$1" | tr -s " " | cut -d" " -f1 |
while read -r V1 V2
do
    if [ "$V1" = "$CUR_SHELL" ]; then
        echo "Error - Program is already running."
        exit 1
    fi 
done

Every word I use as the $1 parameter makes the code enter into the if - although the ps -e -o args | grep "$1" , executed alone, doesn't return any lines beggining with "/bin/ksh" !

There's something you think could be bugging the script ?
This is so strange... because the script was working properly last friday ! Can exist any process with the $1 in the args list that isn't shown with the "ps -e ..." ? I don't think so...
Maybe my user in the Unix server here doesn't have access to view all the processes running ?

Thanks again for any help.

=| 435 Gavea |=

added code tags for readability --oombera

Last edited by oombera; 02-21-2004 at 02:20 AM..
# 13  
Old 11-18-2003
Computer Mistake found...

I've found the mistake...
The fact was that when that code was run as a script, that script turned into a process... as usual, so far...

And running the grep at this point would find a line correspondent to this script, as it contained the $1 , because it was passed as argument...
And this line actually starts with "/bin/ksh", because it is a running script... so it entered the if...
And it will allways do so, that way Smilie

I'm working on to fix this now Smilie

I'll post the final script - one that works properly - when I'm done !

Thanks for all.

=| 435 Gavea |=

Last edited by 435 Gavea; 11-18-2003 at 07:45 PM..
# 14  
Old 11-18-2003
Count equal lines

How can I count equal lines from an input ?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

2. Shell Programming and Scripting

Read from "list1" and list matches in "list2"

I want to print any matching IP addresse in List1 with List 2; List 1 List of IP addresses; 161.85.58.210 250.57.15.129 217.23.162.249 74.76.129.101 30.221.177.237 3.147.200.59 170.58.142.64 127.65.109.33 150.167.242.146 223.3.20.186 25.181.180.99 2.55.199.32 (3 Replies)
Discussion started by: lewk
3 Replies

3. Shell Programming and Scripting

The "read" command misinterprets file names containing spaces

The "read" command, which is built into bash, takes words from the standard input. However, "read" is not good at taking file names if the file names contain spaces. I would like my bash script to ask the user to enter file names, which may contain spaces. Can you think about any technique for... (14 Replies)
Discussion started by: LessNux
14 Replies

4. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

5. Shell Programming and Scripting

Remote script skips "read" command

This script is supposed to display a file ( crontab ), ask the user if they wish to update the file, then it goes through an update routine. #!/bin/bash FILE=/etc/crontab tail -5 $FILE echo -n "Does crontab need updating" read HOURS ...routines ....etc... Runs locally... (8 Replies)
Discussion started by: Bubnoff
8 Replies

6. Shell Programming and Scripting

Manipulating input into the shell "read" command

Hi All I have a migration program that creates directories based on dates, e.g 20090714 20090812 etc.. Based on their requirements, the user will select the directory they want to perform an action on. Currently, this is a snippet of the code I use no_of_versions=`ls | wc -l` if... (2 Replies)
Discussion started by: kingpin2502
2 Replies

7. Shell Programming and Scripting

"read" command ignoring leading spaces

I have to read a file line by line, change it and then update the file. Problem is, when i read the file, "read" command ignores leading spaces. The file is a script which is indented in many places for clarity. How to i make "read" command read leading spaces as well. (3 Replies)
Discussion started by: vickylife
3 Replies

8. Shell Programming and Scripting

read -p "prompt text" foo say "read: bad option(s)" in Bourne-Shell

Hallo, i need a Prompting read in my script: read -p "Enter your command: " command But i always get this Error: -p: is not an identifier When I run these in c-shell i get this error /usr/bin/read: read: bad option(s) How can I use a Prompt in the read command? (9 Replies)
Discussion started by: wiseguy
9 Replies

9. Shell Programming and Scripting

Breaking input with "read" command

In this post, Perderabo's script says echo 05/06/25 14:15:56 | IFS=" /:" read Y1 M1 D1 h1 m1 s1 which, if I am not wrong, will break the input into Y1, M1 et al. I tried the following in my code #! /bin/ksh # per.sh typeset -R2 HOUR=00 typeset -R2 MIN=00 typeset -R2 SEC=00 ... (2 Replies)
Discussion started by: vino
2 Replies

10. Shell Programming and Scripting

how to request a "read" or "delivered" receipt for mails

Dears, I've written a script which allows me to send mails in different formats with different attaches. Now I still want to add a feature to this script. My users would like to be able to receive a "read" or "delivered" receipt for their mails. The script send mails on behalve of an specific... (1 Reply)
Discussion started by: plelie2
1 Replies
Login or Register to Ask a Question