Converting string to integer


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Converting string to integer
# 8  
Old 04-15-2016
Quote:
Originally Posted by MIA651
The script is simply a standalone function that is called by a ksh script with the first line "#!/usr/bin/ksh"
hmmm... strange
don't have AiX in front of me, but try:
Code:
typeset -i process_count=`ps -ef|grep ....`

# 9  
Old 04-15-2016
Thanks, tried the typeset -i approach and still get the same failure:

Code:
+ typeset -i process_count=       0
+ [ 0 -ne 0 ]
/db/scripts/review_load.ksh[59]: test: argument expected

# 10  
Old 04-15-2016
Have tested:
Code:
# add to to the pipe : delete spaces
# | tr -d " "
# and then make string comparing
while [ "$process_count" !=  0 ]

# 11  
Old 04-15-2016
Quote:
Originally Posted by jim mcnamara
If you need process trees, for example, there are commands like ptree, pgrep and id that can help depending on your flavor of UNIX.
In AIX the ps command itself has such a provision: ps -T

On the other hand:
Code:
process_count=`ps -ef|grep $current_user|grep -v $current_process|grep -v $parent_process|grep -v grep|grep -v ps|grep -v DomainDaemon|grep -
v -- -ksh|wc -l`

Isn't there "|kitchen|sink" missing somewhere? ;-))

First, instead of using backticks, please use what is standard in ksh: POSIX-like substitution: $(command|command...).

Second: instead of doing a "ps -ef" and then grepping out a lot of things you do not need you could limit the output to the processes of a certain user by using the "-u"-option. Most of the other greps are equally redundant because by grep -v $current_process you already filter out all the children too - they have the current process' PID as their PPID, no?

Then: the output of "wc -l" is not a number, but a text. A text with some leading blanks and this simply does not translate into a number, at least not with the backticks you use. Try the following:

Code:
typeset -i number=0
print - $(ps -fe | ....|wc -l) | read number

And finally: you want tthe function to wait until the process_count drops to zero. But you set process_count only once and then loop based on the value without ever changing it. Isn't that simply an endless loop if process_count is unequal to 0?

You might want to write something like:

Code:
while [ $(ps | [....] | wc -l) -gt 0 ] ; do
     sleep 1
done

I hope this helps.

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

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Converting time format as Integer to seconds

Hello, How can we convert date like format 20181004171050 in seconds ? I can able to convert till date but failing for HHMMSS. date -d "20181004" "+%s" output as 1538596800 . But when i add hhmmss it is failing date -d "20181004172000" "+%s" result Invalid date Kindly guide. Regards (16 Replies)
Discussion started by: sadique.manzar
16 Replies

2. Shell Programming and Scripting

Converting String To Integer/Float (weird case)

Hi guys, I'm new here. I have a problem at work. One of our scripts was eventually having a bug and only detected recently. Here's the issue and background: Bash Script which calls AWK script Awk script returns a string as per below (example):var1='00000-123'So, when we convert it, the... (18 Replies)
Discussion started by: sekfarok
18 Replies

3. Shell Programming and Scripting

Converting date +%j into integer

Dear community, i got a problem to get "date +%j" as the right value. Today is the 10th day of the year. #./script.sh 2 #!/bin/bash/ Var1=$(date +%j) Var2=$1 let result=$Var1+$Var2 echo $Var1 plus $Var2 equals $result The output of the script is: 010 plus 2 equals 10... (9 Replies)
Discussion started by: OskarHF
9 Replies

4. Shell Programming and Scripting

Converting Month into Integer

okay so i run an openssl command to get the date of an expired script. Doing so gives me this: enddate=Jun 26 23:59:59 2012 GMT Then i cut everything out and just leave the month which is "Jun" Now the next part of my script is to tell the user if the the certificate is expired or not... (6 Replies)
Discussion started by: shade917
6 Replies

5. Shell Programming and Scripting

how to compare string integer with an integer?

hi, how to I do this? i="4.000" if ; then echo "smaller" fi how do I convert the "4.000" to 4? Thanks! (4 Replies)
Discussion started by: h0ujun
4 Replies

6. Shell Programming and Scripting

Converting decimal to integer

The shell mentioned below will show a warning if the page takes more than 6 seconds to load. The problem is that myduration variable is not an integer. How do I convert it to integer? myduration=$(curl http://192.168.50.1/mantisbt/view.php?id=1 -w %{time_total}) > /dev/null ; ] && echo... (3 Replies)
Discussion started by: shantanuo
3 Replies

7. Shell Programming and Scripting

Converting integer to String

Hi everyone, I would like to know how to convert an integer to a string. for instance if i=1 i would like to creat a variable called constant1. i want to do this in a for loop so for each value of i, i create a new variable such as constant2, constant3,... and so on. for i in 1 2 3 do ... (1 Reply)
Discussion started by: ROOZ
1 Replies

8. UNIX for Dummies Questions & Answers

Converting a String variable into Integer

Hi, I am passing a variable to a unix function. However when I try to assign the value to another variable like typeset -i I_CACHE_VAL=$2 Is this because of String to Integer conversion? I get an error. Please help me with thsi. Thanks (2 Replies)
Discussion started by: neeto
2 Replies

9. Shell Programming and Scripting

Converting a decimal into integer

Hi all, I'm trying to convert a decimal number into an integer number; I'm doing this: n=`echo |awk '{ print "'"$mem"'"*10}'` where the variable mem is equal to 3.7 I'd like to obtain 37, but the expression above gives me 30. Help please!!!! thx a lot (4 Replies)
Discussion started by: idro
4 Replies

10. Shell Programming and Scripting

command for converting string to integer

Hi ... I am trying to calculate the time needed for a command to execute.. but the resulting value is getting as string.. so i am not able to use "expr " command.. please help me to convert the value to integer so that i can proceed with my script.. Regards esham (1 Reply)
Discussion started by: esham
1 Replies
Login or Register to Ask a Question