Converting string to integer


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Converting string to integer
# 1  
Old 04-15-2016
Converting string to integer

I have a function that is supposed to check for user processes and wait for 0 count before exiting the function. I am sure I have more than one issue in my code, but the stumbling block right now is that I am trying to convert the value of my variable from a string to integer.

process_count needs to be an integer to be evaluated in the while loop but while debugging I see that it is " 0" not "0". Any help will be greatly appreciated!

Code:
function CheckProcessCount
{
        #acively checks user processes for 0 count

                curent_user=`whoami`
                current_process=$$
                parent_process=$PPID

                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`

                while [[ $process_count != 0 ]]
                do 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
                done
}

# 2  
Old 04-15-2016
What OS do you have, there are a lot of useful commands to deal with this kind of problem?

If you need process trees, for example, there are commands like ptree, pgrep and id that can help depending on your flavor of UNIX.

Last edited by jim mcnamara; 04-15-2016 at 11:09 AM..
# 3  
Old 04-15-2016
Thanks, Jim. I have AIX 6.1
# 4  
Old 04-15-2016
I don't think you need to convert yourself. Some (most?) shell do this implicitly if you use the integer operators:
Code:
A=0
B=" 0"
[ "$A" -eq "$B" ] && echo OK
+ '[' 0 -eq ' 0' ']'
+ echo OK
OK

Not quite so when using string operators:
Code:
[ "$A" = "$B" ] && echo OK || echo NOK
+ '[' 0 = ' 0' ']'
+ echo NOK
NOK

# 5  
Old 04-15-2016
I have changed it to include quotations around the variable in the comparison and use an integer operator, per your suggestion, RudiC and still not working for me:

Code:

Code:
                curent_user=`whoami`
                current_process=$$
                parent_process=$PPID

                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`

                while [ "$process_count" -ne 0 ]
                do 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
                done

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


Last edited by vgersh99; 04-15-2016 at 11:35 AM.. Reason: fixing code tags - code, not icode
# 6  
Old 04-15-2016
I see you're using AiX. What shell interpreter the script is written for?
What's on the first line of the script? Something like that?
Code:
#!/usr/bin/ksh

# 7  
Old 04-15-2016
The script is simply a standalone function that is called by a ksh script with the first line "#!/usr/bin/ksh"
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