Strange behavior returning incorrect count


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Strange behavior returning incorrect count
# 1  
Old 10-01-2015
Wrench Strange behavior returning incorrect count

On AIX When I Run the commands below I get -

Code:
cat tt11.ksh

#!/bin/ksh
ps -eaf |grep tt11.ksh|grep -v grep|wc -l
count=`ps -eaf |grep tt11.ksh|grep -v grep|wc -l`
echo "value of count is $count"

Output (what I expected)
Code:
 ./tt11.ksh
       1
value of count is        1

When I Run the same program (tt11.ksh) on Redhat Linux Version 5. I get
Code:
 ./tt11.ksh
1
value of count is 2

Any Idea why that would be?

Last edited by Corona688; 10-01-2015 at 12:39 PM..
# 2  
Old 10-01-2015
Different versions / implementations of shells handling subshells differently. Every pipe makes a copy of the process then runs exec to run the command you wanted. So the count isn't incorrect, exactly.
# 3  
Old 10-01-2015
To debug this, run without the wc -l
Code:
#!/bin/ksh
ps -eaf |grep tt11.ksh|grep -v grep
count=`ps -eaf |grep tt11.ksh|grep -v grep`
echo ""
echo "$count"
echo "----"

# 4  
Old 10-01-2015
change your grep to use a regexp to search so that the search doesn't match itself. Otherwise you may see two matches... one for the process you wanted and one for your grep itself. It will vary from system to system and in some cases can vary on the same system.

e.g.
Instead of
Code:
grep ttll.ksh

change it to
Code:
grep 'ttll\.ksh'

# 5  
Old 10-01-2015
Code:
cat tt11.ksh
#!/bin/ksh
ps -eaf |grep tt11.ksh|grep -v grep
count=`ps -eaf |grep tt11.ksh|grep -v grep`
echo ""
echo "$count"
echo "----"

[itmuser@njctivtemspr01 scripts]$ ./tt11.ksh
itmuser  24550 18489  0 13:20 pts/0    00:00:00 /bin/ksh ./tt11.ksh
 
itmuser  24550 18489  0 13:20 pts/0    00:00:00 /bin/ksh ./tt11.ksh
itmuser  24556 24550  0 13:20 pts/0    00:00:00 /bin/ksh ./tt11.ksh

----

Looks like parent shell is creating new shell to run the command. Is there a way to avoid this? Goal is to have same code to run on AIX and Linux ksh shell.

Last edited by Corona688; 10-01-2015 at 02:49 PM..
# 6  
Old 10-01-2015
Quote:
Originally Posted by st11669
Looks like parent shell is creating new shell to run the command.
That is how pipes work.
# 7  
Old 10-01-2015
To keep the forums high quality for all users, please take the time to format your posts correctly.

First of all, use Code Tags when you post any code or data samples so others can easily read your code. You can easily do this by highlighting your code and then clicking on the # in the editing menu. (You can also type code tags [code] and [/code] by hand.)



Second, avoid adding color or different fonts and font size to your posts. Selective use of color to highlight a single word or phrase can be useful at times, but using color, in general, makes the forums harder to read, especially bright colors like red.

Third, be careful when you cut-and-paste, edit any odd characters and make sure all links are working property.

Thank You.

The UNIX and Linux Forums
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Strange Ctrl+C behavior

Hello All, I have a strange issue. I've created a shell script which connects to RMAN (Oracle Recovery Manager) and executes full DB backup. I then executed this script with nohup and in the background: $ nohup my_script.sh > logfile.log 2>&1 &The issue is that when I tried to take a look into... (6 Replies)
Discussion started by: JackK
6 Replies

2. AIX

Strange behavior with tar

I am trying to create an archive using tar. I am specifying a list of directories using the -L option. For testing purposes I created a simple directory structure: /backup/test /backup/test/test1 /backup/test/test2 The file specified by the -L option, named files.txt, contains:... (8 Replies)
Discussion started by: judykstra
8 Replies

3. Shell Programming and Scripting

Strange behavior on one of my server

I am not sure what is wrong, but I have some strange behavior when printing things out. I do create a file with only one word test, no space, no new line etc. nano file<enter> test<ctrl x>y<enter> Server 1 gets (fail) awk '{print "+"$0"*"}' file *test Server 2 gets (OK) awk '{print... (9 Replies)
Discussion started by: Jotne
9 Replies

4. AIX

Strange memory behavior

Hello together, i have a strange memory behavior on a AIX 7.1 System, which i cannot explain. The Filesystem-Cache will not be grow up and drops often after few minutes. I know if a file was deleted, that the same segment in the FS-Cache will also be cleared. But i am not sure if this is the... (8 Replies)
Discussion started by: -=XrAy=-
8 Replies

5. Red Hat

strange mail behavior

Hi I have script to to take backup and send mail to a group once a day. One strange behavior I have observed recently is that most of the time the mail we receive is fine . But someday it just sends out mail without any subject with undisclosed recipients. I dont know how to find the cause... (0 Replies)
Discussion started by: ningy
0 Replies

6. Programming

Strange behavior in C++

I have the following program: int main(int argc, char** argv){ unsigned long int mean=0; for(int i=1;i<10;i++){ mean+=poisson(12); cout<<mean<<endl; } cout<<"Sum of poisson: "<< mean; return 0; } when I run it, I get the... (4 Replies)
Discussion started by: santiagorf
4 Replies

7. Shell Programming and Scripting

nawk strange behavior

Dear guys; when deleting repeated lines using nawk as below ; Why the below syntax works? nawk ' !a++' infile > outfile and when using the other below syntax the nawk doesn't work? nawk ' { !a++ } ' infile > outfile or nawk ' { !a++ } ' infile > outfile BR (4 Replies)
Discussion started by: ahmad.diab
4 Replies

8. UNIX for Dummies Questions & Answers

Strange Behavior on COM2

Hi, I have a problem with a new touch screen controller that I am trying to use on a SCO 3.0 system. THe touch screen controller only wants to talk at 9600baud. I have updated /etc/inittab per the manual and also edited /usr/lib/event/devices to use 9600 baud. The only way I can get the... (0 Replies)
Discussion started by: Elwood51
0 Replies

9. UNIX for Dummies Questions & Answers

strange sed behavior

I have a file called products.kp which contains, for example, 12345678,1^M 87654321,2^M 13579123,3 when I run the command cat products.kp| sed -f kp.sed where kp.sed contains s,^M,, I get the output 12345678,1 87654321,2 13579123,3 (5 Replies)
Discussion started by: Kevin Pryke
5 Replies
Login or Register to Ask a Question