error "integer expression expected" when selecting values


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting error "integer expression expected" when selecting values
# 1  
Old 12-10-2008
error "integer expression expected" when selecting values

dear members,

I am having some difficulties with an automation script that I am writing.

We have equipments deployed over our network that generate status messages and I was trying an automated method to collect all information.

I did a expect script that telnet all devices, logs, asks for the status and save it to a file.

My next step is read that file, check for the faulty devices and write only the faulty devices names to a file.

an excerpt from the file that expect collects is like this:

root@lemure cgi-bin]# telnet device1
Trying xxx.yyy.zzz.ttt...
Connected to device1.
Escape character is '^]'.


(device1) Enter password:

User: admin
Password:

Number of available modems: 952
Number of disabled modems: 0
Number of failed/non-existent modems: 10
Number of available good modems: 816
Number of in-use modems: 8
Number of all possible modems: 960
Number of suspect modems: 136
Connection closed by foreign host.


my bash script is like that:

#!/bin/sh

for X in $(cat /var/www/cgi-bin/devices_bd) # devices_bd is a list with all devices

do

BAD=$(cat /var/www/cgi-bin/modems_failed | grep -A16 $X | grep failed | cut -d " " -f 13 | grep "[^0-9]")

echo $BAD >> /var/www/cgi-bin/teste.bad.var

if [ $BAD -gt 0 ]

then echo $X $BAD >> /var/www/cgi-bin/teste.bad

fi

done

that script checks if there are failed modems in the device. If there are, the device is listed with the number of filed modems in a separate file.

when I run that scrip I got : integer expression expected errors. I was assumin that they where caused by CR/LF characters (0x0d and 0x0a), but the way I did the grep I don't think that should happen

I also tried selecting the digits with sed, like that:

BAD=$(cat /var/www/cgi-bin/modems_TNT | grep -A16 $X | grep failed | cut -d " " -f 13 | sed 's/ //g')

same error.

I think that I am commiting some very basic mistake, but I don't have much expertise with scripts.

Any sugestion is appreciated

TIA,

orlando
# 2  
Old 12-10-2008
Post some lines of /var/www/cgi-bin/modems_failed and mention the value you want to grep for.

Regards
# 3  
Old 12-10-2008
The lines of /var/www/cgi-bin/modems_failed are the excerpt collected by expect.

In that case, the device name is device1, so my script would select the line with failed modems Number of failed/non-existent modems: 10 and select the value 10

the output file would have a line written with device1 10
# 4  
Old 12-10-2008
a little progress: the error is caused by CR/LF (0x0d/0x0a) characters at the end of line. the script works fine if the end of line is unix style, ending with LF only (0x0a)

I used the command dos2unix to convert the input file and now my script works as expected

so my question in fact is:

how can I grep/sed/cut an input file and leave behind the 0x0d characters?
# 5  
Old 12-10-2008
MySQL solved!

I changed the extraction line from

BAD=$(cat /var/www/cgi-bin/modems_failed | grep -A16 $X | grep failed | cut -d " " -f 13 | grep "[^0-9]")

to

BAD=$(cat /var/www/cgi-bin/modems_failed | grep -A16 $X | grep failed | cut -d " " -f 13 | sed -e 's/\r$//')

the sed -e 's/\r$//' strips the CR characters and the script works as expected now.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

if condition error: integer expression expected

I am trying to run following condition with both variables having numeric values "1,2,3" if ;when i run it i get following error: $NEW_STATE: integer expression expected Please correct me where I'm doing wrong. I'm trying to check either New State is greater or Old state.... (0 Replies)
Discussion started by: kashif.live
0 Replies

2. UNIX for Dummies Questions & Answers

redirect for "[: : integer expression expected" error

Hi, I read in this forum that for "https://www.unix.com/shell-programming-scripting/156008-integer-expression-expected-regular-expression.html thanks! (7 Replies)
Discussion started by: Vijay81
7 Replies

3. UNIX for Dummies Questions & Answers

Integer expression expected error in script

When i run the following code i get an error that says Integer expression expected! How do i fix this? #!/bin/bash if ;then echo "wrong" exit 1 fi if ;then for i in /dev;do if ;then echo $i ls -l fi (4 Replies)
Discussion started by: kotsos13
4 Replies

4. Shell Programming and Scripting

Error: integer expression expected

root@server01 # df -h | grep /tmp | awk {'print $3}' 252M root@server01 # root@server01 # cat /usr/local/tmpchk.sh #!/bin/sh x=`df -h | grep /tmp | awk {'print $3}'` if ; then rm -fr /tmp/somefolder/ else echo "its small" (2 Replies)
Discussion started by: fed.linuxgossip
2 Replies

5. Shell Programming and Scripting

if script error: integer expression expected

Hi, i am making a simple program with a optional -t as the 3rd parameter. Submit course assignment -t dir In the script, i wrote: #!/bin/bash echo "this is course: ${1}" echo "this is assignment #: ${2}" echo "late? : ${3}" if then echo "this is late" fi but this gives me a :... (3 Replies)
Discussion started by: leonmerc
3 Replies

6. Shell Programming and Scripting

cshell integer expression from "0000" to "1999"

I have 2000 files named like "file-fr0000.log", "file-fr1999.log"... I wanna generate the file names automatically in the following c shell script: set fr = 0 while ($fr <= 1999) grep "ENERGY" file-fr$fr.log > data.dat @ fr = ( $fr + 1 ) end The above will generate file names... (3 Replies)
Discussion started by: rockytodd
3 Replies

7. Shell Programming and Scripting

Display Error [: : integer expression expected

i have lunix 5.4 i make script to tack the export from database 11g by oracle user the oracle sheel is /bin/bash when run this script display this error ./daily_xport_prod: line 36: the daily_xport_prod script #! /bin/sh # ORACLE_HOME=/u01/appl/oracle/product/11.2.0/db_1 export... (8 Replies)
Discussion started by: m_salah
8 Replies

8. Fedora

"integer expression expected" error with drive space monitoring script

Hi guys, I am still kinda new to Linux. Script template I found on the net and adapted for our environment: #!/bin/sh #set -x ADMIN="admin@mydomain.com" ALERT=10 df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output; do #echo $output ... (2 Replies)
Discussion started by: wbdevilliers
2 Replies

9. Shell Programming and Scripting

integer expression expected error crontab only

I created a bash script that ran fine for awhile on a nightly crontab but then started crashing with commands not found, so I added PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/home/homedir/scripts/myscriptdir export PATH and now I don't get those errors, but... (2 Replies)
Discussion started by: unclecameron
2 Replies

10. Shell Programming and Scripting

integer expression expected error

I'm a beginner so I might make beginner mistakes. I want to count the "#define" directives in every .C file I get the following errors: ./lab1.sh: line 5: ndef: command not found ./lab1.sh: line 6: #!/bin/sh for x in *. do ndef = 'grep -c \#define $x' if ; then ... (2 Replies)
Discussion started by: dark_knight
2 Replies
Login or Register to Ask a Question