How to read from file and convert from string to integer?
Hi all,
I am trying to write a script to be able to
Run top command
Pick the PIDs that are taking more than 90% of CPU time
Get more details like what is the script name and location for that PID
Script should run until I manually kill it by ctrl + C
I have come up with following script for this:
Code:
#!/bin/bash
while true; do
filename=`date +"%Y%m%d%H%M%S"`
touch $filename
chmod 755 $filename
top -bn 1 | grep "^ " | awk '{ printf("%-8s %-8s %-8s %-8s\n", $1, $9, $10, $12); }' | head -n 10 >> $filename
while read pid cpu mem command
do
if [ $cpu -ge 90 ]; then
echo "For $pid" >> SlownessStatusReporter_out
cat /proc/$pid/cmdline >> SlownessStatusReporter_out
fi
done < $filename
sleep 5
done
But I think I am not doing data type conversion properly for $cpu at line
Code:
if [ $cpu -ge 90 ]; then
I think when I read from $filename cpu is coming as string and inside if condition, I am trying to use it as integer. This guess is from the fact that I keep getting error for the line if [ $cpu -ge 90 ]; then as below:
Code:
./SlownessStatusReporter.sh: line 15: [: %CPU: integer expression expected
./SlownessStatusReporter.sh: line 15: [: 0.0: integer expression expected
./SlownessStatusReporter.sh: line 15: [: 0.0: integer expression expected
./SlownessStatusReporter.sh: line 15: [: 0.0: integer expression expected
./SlownessStatusReporter.sh: line 15: [: 0.0: integer expression expected
./SlownessStatusReporter.sh: line 15: [: 0.0: integer expression expected
./SlownessStatusReporter.sh: line 15: [: 0.0: integer expression expected
./SlownessStatusReporter.sh: line 15: [: 0.0: integer expression expected
./SlownessStatusReporter.sh: line 15: [: 0.0: integer expression expected
./SlownessStatusReporter.sh: line 15: [: 0.0: integer expression expected
When I tried to put $cpu and 90 in double quotes or tried to use >= instead of -ge, I get a different error as below:
Code:
./SlownessStatusReporter.sh: line 15: [: %CPU: unary operator expected
./SlownessStatusReporter.sh: line 15: [: 2.0: unary operator expected
./SlownessStatusReporter.sh: line 15: [: 2.0: unary operator expected
./SlownessStatusReporter.sh: line 15: [: 0.0: unary operator expected
./SlownessStatusReporter.sh: line 15: [: 0.0: unary operator expected
./SlownessStatusReporter.sh: line 15: [: 0.0: unary operator expected
./SlownessStatusReporter.sh: line 15: [: 0.0: unary operator expected
./SlownessStatusReporter.sh: line 15: [: 0.0: unary operator expected
./SlownessStatusReporter.sh: line 15: [: 0.0: unary operator expected
./SlownessStatusReporter.sh: line 15: [: 0.0: unary operator expected
Can someone please suggest me how correct this error so my script can work.
I am using:
i want to convert from an integer to a string..in unix...i am writing a C program with embedded SQL...
I remeber using itoa...but for some reason it doesnt work......i cant find it in the manual.....
Maybe that is the wrong command.....
but i have checked Dev Studio.....and it doest exist in the... (6 Replies)
how i can read a long integer from standar input and a string with as many characters as specified in the number?
i thing that i must use the read command ofcourse.... (6 Replies)
How to convert string into an integer or number
For example :
% set tim = `date`
% echo $tim
Tue Feb 22 16:25:08 IST 2011
here How to increment time by 10 hrs
like 16+10 , here 16 is a string in date cmd. .. how to convert 16 to an integer and added to a another nimber ?
Thanks... (3 Replies)
I read 3 variables from from Inputfile.txt the third one "startnumber" is a number when i compare it with 9 ($startnumber -le 9) it give's me a "unary operator expected", i know that -le is for number comparison. What i need is to convert $startnumber to integer (i have try to do it with expr but... (8 Replies)
Hi , Can you have a look at my code it should display integer in file but it doesn't
#include <stdio.h>
/* This function reads two values from a file. */
int demonstrate_fscanf(void)
{
FILE *InFile;
int b, numValuesRead;
InFile = fopen("fadata.rtf", "r");
if... (3 Replies)
Hi fellows!!
i'm doing something which is not working out for me properly which i don't understand why
nowdate=`date +%s`
echo $nowdate
now the problem how to convert a date which is stored in a variable
mydate="22/Oct/2011"
mydate=`date -d '$mydate' +%s`
it gives error... (11 Replies)
Using below command
awk 'NR==FNR{A=$1;next}
{sum+=($2*A)}END{OFMT="%20f";print int(sum)}' Market.txt Product.txt
answer:351770174.00000
how to convert this to 351770174.
when i try with below command i am getting different result.
awk 'NR==FNR{A=$1;next}... (3 Replies)
Hi All,
sessionid_remote=$(echo "select odb_sessionid from sysopendb where odb_dbname='syscdr';" | sudo -u cucluster ssh ucbu-aricent-vm93 "source /opt/cisco/connection/lib/connection.profile; $INFORMIXDIR/bin/dbaccess sysmaster@ciscounity")
for sid in $sessionid_remote;do
if * ]];... (2 Replies)
I have data as below
"ROWS merge process complete. thousand rows changed"
I need to get a variable assigned the value of 1000. I mean convert the string thousand to 1000.
Any help or pointer.
Please use CODE tags as required by forum rules! (6 Replies)