Sponsored Content
Top Forums Shell Programming and Scripting Display which test in the if/else is failing Post 302489709 by kshji on Friday 21st of January 2011 11:00:47 AM
Old 01-21-2011
I parse those datalines and comparing values.
I also create variable which name is column ATTRIBUTE_NAME. Possible to use variable and comparing those. Only example if needed.
Code:
# ... set variables and run commands, look original solution

msg=/var/tmp/$$.msg.txt
> $msg
err=""

for f in $SMARTMESSAGE1 $SMARTMESSAGE2
do
    data=0
    cat $f | while read line
    do
       # only datalines include values ...
        case "$line" in
                ID*ATTRIBUTE_NAME*) data=1 ; continue ;;
                SMART*Error*Log*Ver*) data=0 ; continue ;;
                "") continue ;;
        esac
        ((data==0)) && continue

        flds=($line)  # parse to array
        f2="${flds[1]}"
         nflds=${#flds[*]}
        ((nflds=nflds-1))
        lastfld="${flds[$nflds]}"
        # extra lines, example to create variable and set value
        f2=${f2//-/_}  # cariablename can't include - => change it to the _
        eval $f2=\""$lastfld"\"
        # extra end
        case "$f2" in
                Temperature_Celsius) ((lastfld > 40 )) && echo "$f $f2 $lastfld" >> $msg  && err="$err $f2";;
                *) ((lastfld > 0 )) && echo "$f $f2 $lastfld" >> $msg  && err="$err $f2" ;;
        esac
    done
done

SUBJECT="$SUBJECT $err"
lines=$(cat $msg | wc -l)
# if msg file include lines - we have something to tell
if ((lines < 1 ))
then
        # no problem
        echo "$(date) no problem" >> $LOG
        rm -f $msg 2>/dev/null
        exit 0
fi

# Houston - we have problem
# send mail
echo "Some problem, sending mail " >&2
date >> $msg
# sendmail here

# rm tmp file
rm -f $msg 2>/dev/null

 

6 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Test on string containing spacewhile test 1 -eq 1 do read a $a if test $a = quitC then break fi d

This is the code: while test 1 -eq 1 do read a $a if test $a = stop then break fi done I read a command on every loop an execute it. I check if the string equals the word stop to end the loop,but it say that I gave too many arguments to test. For example echo hello. Now the... (1 Reply)
Discussion started by: Max89
1 Replies

2. Shell Programming and Scripting

How to check weather a string is like test* or test* ot *test* in if condition

How to check weather a string is like test* or test* ot *test* in if condition (5 Replies)
Discussion started by: johnjerome
5 Replies

3. Shell Programming and Scripting

Prefixing test case methods with letter 'test'

Hi, I have a Python unit test cases source code file which contains more than a hundred test case methods. In that, some of the test case methods already have prefix 'test' where as some of them do not have. Now, I need to add the string 'test' (case-sensitive) as a prefix to those of the... (5 Replies)
Discussion started by: royalibrahim
5 Replies

4. Shell Programming and Scripting

Test file script - if evaluation failing

I have a following script to evaluate if file exist in the directory and then archive it. #!/bin/bash #master directory scriptdir="/flex/sh/interfaces" #change this path only - all other paths are connected with it filedir="/flex/interfaces" #change this path only - all other paths are... (3 Replies)
Discussion started by: viallos
3 Replies

5. UNIX for Dummies Questions & Answers

Script test failing

Testing some old script developed by different user. #!/usr/bin/sh case "$0" in */*) cmd="$0";; *) cmd=`which "$0"`;; esac dir=`dirname "$cmd"` node="$dir/." echo $node below two simple tests are failing, I am not seeing any Control+M characters in the script file and I am not able... (4 Replies)
Discussion started by: srimitta
4 Replies

6. UNIX for Advanced & Expert Users

PERL DBD make test on Linux failing

I am installing Oracle DBD to PERL 5.16.3 and during make test , I am running into this error :rm -f blib/arch/auto/DBD/Oracle/Oracle.so LD_RUN_PATH="/opt/oracle/product/11.2.0/racdb11204/lib" gcc -m32 -shared -O2 -L/usr/local/lib -fstack-protector Oracle.o dbdimp.o oci8.o -o... (3 Replies)
Discussion started by: talashil
3 Replies
PARTX(8)						       System Administration							  PARTX(8)

NAME
partx - tell the Linux kernel about the presence and numbering of on-disk partitions SYNOPSIS
partx [-a|-d|-s] [-t TYPE] [-n M:N] [-] disk partx [-a|-d|-s] [-t TYPE] partition [disk] DESCRIPTION
Given a device or disk-image, partx tries to parse the partition table and list its contents. It optionally adds or removes partitions. The disk argument is optional when a partition argument is provided. To force scanning a partition as if it were a whole disk (for example to list nested subpartitions), use the argument "-". For example: partx --show - /dev/sda3 This will see sda3 as a whole-disk rather than a partition. This is not an fdisk program -- adding and removing partitions does not change the disk, it just tells the kernel about the presence and numbering of on-disk partitions. OPTIONS
-a, --add Add the specified partitions, or read the disk and add all partitions. -b, --bytes Print the SIZE column in bytes rather than in human-readable format. -d, --delete Delete the specified partitions or all partitions. -g, --noheadings Do not print a header line. -l, --list List the partitions. Note that all numbers are in 512-byte sectors. This output format is DEPRECATED in favour of --show. Don't use it in newly written scripts. -o, --output list Define the output columns to use for --show and --raw output. If no output arrangement is specified, then a default set is used. Use --help to get list of all supported columns. -r, --raw Use the raw output format. -s, --show List the partitions. All numbers (except SIZE) are in 512-byte sectors. The output columns can be rearranged with the --output option. -t, --type type Specify the partition table type -- aix, bsd, dos, gpt, mac, minix, sgi, solaris_x86, sun, ultrix or unixware. -n, --nr M:N Specify the range of partitions. For backward compatibility also the format <M-N> is supported. The range may contain negative numbers, for example "--nr :-1" means the last partition, and "--nr -2:-1" means the last two partitions. Supported range specifi- cations are: <M> Specifies just one partition (e.g. --nr 3). <M:> Specifies lower limit only (e.g. --nr 2:). <:N> Specifies upper limit only (e.g. --nr :4). <M:N> or <M-N> Specifies lower and upper limits (e.g. --nr 2:4). EXAMPLES
partx --show /dev/sdb3 partx --show --nr 3 /dev/sdb partx --show /dev/sdb3 /dev/sdb All three commands list partition 3 of /dev/sdb. partx --show - /dev/sdb3 Lists all subpartitions on /dev/sdb3 (the device is used as whole-disk). partx -o START -g --nr 3 /dev/sdb Prints the start sector of partition 5 on /dev/sda without header. partx -o SECTORS,SIZE /dev/sda5 /dev/sda Lists the length in sectors and human-readable size of partition 5 on /dev/sda. partx --add --nr 3:5 /dev/sdd Adds all available partitions from 3 to 5 (inclusive) on /dev/sdd. partx -d --nr :-1 /dev/sdd Removes the last partition on /dev/sdd. SEE ALSO
addpart(8), delpart(8), fdisk(8), parted(8), partprobe(8) AUTHORS
Davidlohr Bueso <dave@gnu.org> Karel Zak <kzak@redhat.com> The original version was written by Andries E. Brouwer <aeb@cwi.nl>. AVAILABILITY
The partx command is part of the util-linux package and is available from ftp://ftp.kernel.org/pub/linux/utils/util-linux/. util-linux February 2011 PARTX(8)
All times are GMT -4. The time now is 06:24 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy