Hi
Can you help me get the script for below requirement.
when i run below script
./script QM hostname
script should be working in below
here inputs are QM and hostname
by taking inputs it should work like below
QM=$1
if QM name ends with 1 $4 should be 51431
ends with 2 $4 should be 51432
3 $4 should be 51433
4 $4 should be 51434
and hostname should be converted into IP adress. i think it should be hostname -i to convert hostname into IP (IP address is $3)
then it should perform below command
if [[ $1 =~ 1$ ]] && [[ $4 != 51431 ]]; then
...
elif ...
...
fi
Or a case-statement might be simpler.
[/code]
case "$QM" in
*1) NEED=51431;;
*2) NEED=51432;;
*3) NEED=51433 ;;
*4) NEED=51434;;
?) NEED=-1;;
esac
if [ "$4" -ne "$NEED" ]; then
echo "\$4 should be $NEED"
: ...
fi
Maybe you can use the host command to get the IP address (but I think you're using Solaris, and I'm not sure if the host command is available there), otherwise nslookup if it's in DNS.
A little effort in transfering proposals to your own solution should be invested, don't you think, too?
Assigning single positional parameters is not that easy. Try (this bashism):
case "${QM:${#QM}-1:1}" in
1) NEED=51431;;
2) NEED=51432;;
3) NEED=51433;;
4) NEED=51434;;
?) NEED=-1;;
esac
TMP=($@)
TMP[3]="$NEED"
set ${TMP[@]}