I have a SNMP agent that sends three arguments to the script to get a value at the end. The first is the LeafNumber, second is the request type (SET, GET, GETNEXT), and the last is a string that represents some value to be set(used only for set requests).
The agent string looks like this:
Code:
extension 1 OctetString readonly /etc/motdpass.sh
So it makes the first agument variable(ARGV)=1
The second would be "GET" or "GETNEXT"
In the manual for the SNMP agent it gives a $ARGV[0,1, or 2] in their perl script example, but how would this look in a shell script? Would it just be $1, $2, or $3? This is what I have so far.
Code:
#!/bin/sh
# Shell script to pull primary ESA out of a file
FILENAME= /etc/motd
# Do work
extPrimEsa= grep "Primary ESA" $FILENAME|cut -d\= -f2
if [ $ARGV[0] -eq 1 ]; then
# OID queried is 1.3.6.1.4.1.546.14.1.0
if [ $ARGV[1] = "GET" ]; then
echo extPrimEsa
fi
fi
I need to go through 8 different variables, but once I have this one down and working, I'll add the rest in. Am I doing this right?
Hi, for starters, you could try something like this:
Code:
#!/bin/sh
# Shell script to pull primary ESA out of a file
FILENAME=/etc/motd # No space in assignments
if [ $1 -eq 1 ]; then
if [ "$2" = "GET" ]; then
# Do work
extPrimEsa=$(grep "Primary ESA" "$FILENAME"|cut -d\= -f2)
echo "$extPrimEsa"
fi
fi
This User Gave Thanks to Scrutinizer For This Post:
This is great, but there were a few tweaks. The final code for this one variable looks like this:
Code:
#!/bin/sh
# Shell script to pull primary ESA out of a file
FILENAME=/etc/motd # No space in assignments
if [ $1 -eq 1 ]; then
if [ "$2" = "GET" ]; then
# Do work
extPrimEsa= grep "Primary ESA" "$FILENAME"|cut -d\= -f2
echo "$extPrimEsa"
fi
fi
Thank you so much.
---------- Post updated at 01:53 PM ---------- Previous update was at 09:45 AM ----------
Okay, this is my final final script that has all the extension variables accounted for and are being passed through SNMP to the server (Spectrum).
Code:
#!/bin/sh
# Shell script to pull primary ESA out of a file
# Define some stuff
FILENAME=/etc/motd
if [ "$1" = 1 ]; then
extPrimEsa=grep "Primary ESA" "$FILENAME"|cut -d\= -f2
echo "$extPrimEsa"
elif [ "$1" = 2 ]; then
extSecEsa=grep "Secondary ESA" "$FILENAME"|cut -d\= -f2
echo "$extSecEsa"
elif [ "$1" = 3 ]; then
extPrimCust=grep "Primary Customer" "$FILENAME"|cut -d\= -f2
echo "$extPrimCust"
elif [ "$1" = 4 ]; then
extPrimDBA=grep "Primary DBA" "$FILENAME"|cut -d\= -f2
echo "$extPrimDBA"
elif [ "$1" = 5 ]; then
extSysLoc=grep "System Location" "$FILENAME"|cut -d\= -f2
echo "$extSysLoc"
elif [ "$1" = 6 ]; then
extBusUnt=grep "Business Unit" "$FILENAME"|cut -d\= -f2
echo "$extBusUnt"
elif [ "$1" = 7 ]; then
extConsl=grep "Console" "$FILENAME"|cut -d\= -f2
echo "$extConsl"
elif [ "$1" = 8 ]; then
extSysTyp=grep "System Type" "$FILENAME"|cut -d\= -f2
echo "$extSysTyp"
fi
You can redirect in $FILENAME at the bottom that way, instead of repeating it over and over. Without a filename, grep just reads from standard input, which is what's being redirected at the bottom of the case statement there.
line 5: #!/bin/bash
old=$(du -sh /home/andy/Downloads/myfile.iso)
while true; do
new=$(du -sh /home/andy/Downloads/myfile.iso)
if ;
then
break
fi
old=$new
xdotool getactivewindow key Ctrl
sleep 5
done
line 5: bash - Meaning of " (square brackets)... (9 Replies)
Hi Experts ,
I have following code
if ; then
mv path /filename newdirpath
echo "K* files moved successfully to newdirpath \n"
else
echo "K* files DID NOT moved successfully to newdirpath \n"
fi
I am getting
"echo "K* files DID NOT moved successfully to newdirpath \n"... (19 Replies)
echo "the number from 1 to 10:"
i=1
while
do
echo $i
i=`expr $i+1'
done
above is the program i written in Linux O.S using vi editor
but i am getting the error that
while: line 3:
i am not understanding that why i am getting this error.
can any body please help me regarding this... (3 Replies)
i don't know what's wrong with the code, says too many arguments in the first two if statements. how to change it? thx.
the file is like in this format:
;dfs;dfdsf;fsd ff dsf;dfdffdfd; -f2 should be only one word with no space, but could be like this 'n/a', '**ABC'
while read line; do
... (1 Reply)
I can't find anything wrong with this line of code, it works when there is one file in the directory but more than one i get a "too many arguements2 error
if ; then
am i missing something? (3 Replies)
Hi Guys
I have this small Bash script - but it fails when I'm trying to run it.
./test.sh: && ; then
# date >> /writable/sys/shutdown.log
shutdown -h "now"
exit
fi
done (4 Replies)
Ok so i had to create a file and put some random text into it which i did.
THen u make a script which takes 2 arguments.
The first being a line of text, the second being your newly created file.
The script should take the first argument and insert it into the very top (the first line) of... (1 Reply)