08-07-2008
Hi Radoluv,
Thnks for ur valuable replies
My next tasks are
getting the IP and USERAGENT value from the command line argument
call function isInFua ( which is internally calling some othe functions)
FInally i need the Return value (RET_VALUE) like 3G or Smartphone or WAP or WEB...
I am attaching the code with ur changes
#!/bin/sh
IPWeb=( 10.66.24.1 10.66.24.3 10.66.24.4 10.66.24.23 10.66.24.35 10.66.24.34 10.66.24.36 10.66.24.38 10.66.17.151 10.66.17.152 10.66.17.153 10.66.17.
154 10.66.17.155 10.66.17.156 10.66.17.147 10.66.17.148 10.66.17.149 10.66.17.150 )
IPMobile=( 10.163.118.159 10.163.118.160 10.163.118.161 10.163.118.162 10.163.118.163 10.163.118.164 10.163.118.165 10.163.118.166 10.163.118.167 10.163.118.
168 10.163.118.169 10.163.118.170 10.163.118.171 10.163.118.172 10.66.24.40 10.66.24.17 10.66.24.19 10.66.24.37 10.66.17.131 10.66.17.132 10.66.17.133 10.66.
17.134 10.66.17.135 10.66.17.136 10.66.17.137 10.66.17.138 10.66.17.139 10.66.17.144 10.66.17.145 10.66.17.146 )
if [ ! -e $_ficParam ] # e means file exists
then
echo $_ficParam file is misssing
exit
fi
if [ "$_pat" == "" ]
then
_pat=intermediatePattern.txt
fi
if [ ! -e $_pat ] # e means file exists
then
echo "intermediatePattern.txt file is not accessibile"
fi
echo _pat : $_pat
IDX=0
IDX_SP=0
awk 'END {
while (++n <= i)
printf "tg_a, element %d: %s\n", n, THREEG_ARRAY[n]
while (++m <= j)
printf "sp_a, element %d: %s\n", m, SP_ARRAY[m]
}
{
if (/^3G/)
THREEG_ARRAY[++i] = $1
else
SP_ARRAY[++j] = $0
}' $_pat
SIZE_THREEG_ARRAY=`echo ${#THREEG_ARRAY[*]}`
SIZE_SP_ARRAY=`echo ${#SP_ARRAY[*]}`
ALL_ARGS=$* # argument from command line
IP=`echo $ALL_ARGS | awk '{print $1}'` # getting value for IP address
USER_AGENT=$(echo $ALL_ARGS | cut -d'"' -f6) # getting value for USER AGENT
var=0
RET_VALUE=""
function isInFua
{
echo VAR --- $var
isSmartPhone # calling function for Smart phone
if [ $var == 1 ]
then
RET_VALUE=SmartPhone
return
fi
isThreeG # calling function for 3G
if [ $var == 1 ]
then
RET_VALUE=3G
return
fi
isFromWAP # calling function for WAP
if [ $var == 1 ]
then
RET_VALUE=WAP
return
fi
isFromWEB # # calling function for WEB
if [ $var == 1 ]
then
RET_VALUE=WEB
return
fi
}
#------------------------------------------------------------------------------#
# Test 3G and 2.5G on a user-agent functions #
#------------------------------------------------------------------------------#
function isSmartPhone
{
for ((i = 0 ; i < $SIZE_SP_ARRAY ; i++))
do
USER_AGENT_VALUE=`echo $USER_AGENT | grep "${SP_ARRAY[$i]}"`
if [ $? = 0 ]
then
var=1
return
fi
done
}
function isThreeG
{
for ((i = 0 ; i < $SIZE_THREEG_ARRAY ; i++))
do
USER_AGENT_VALUE=`echo $USER_AGENT | grep "${THREEG_ARRAY[$i]}"`
if [ $? = 0 ]
then
var=1
return
fi
done
}
function isFromWAP
{
for ((i = 0 ; i < ${#IPMobile[*]} ; i++))
do
IP_MOBILE_VALUE=`echo $IP | grep "${IPMobile[i]}"`
if [ $? = 0 ]
then
var=1
return
fi
done
}
function isFromWEB
{
for ((i = 0 ; i < ${#IPWeb[*]} ; i++))
do
IP_MOBILE_VALUE=`echo $IP | grep "${IPWeb[i]}"`
if [ $? = 0 ]
then
var=1
return
fi
done
}
isInFua
echo RET_VALUE = $RET_VALUE
Can you please go through with this ??
Thanks for the help...
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
set -A arr a1 a2 a3 a4
# START
ssh -xq $Server1 -l $Username /usr/bin/ksh <<-EOS
integer j=0
for loop in ${arr}
do
printf "array - ${arr}\n"
(( j = j + 1 ))
j=`expr j+1`
done
EOS
# END
=========
this is not giving me correct output.
I... (5 Replies)
Discussion started by: reldb
5 Replies
2. UNIX for Advanced & Expert Users
hi All,
I have a array as follows,
array1=("xx" "abc" "def" "xyz")
and each array1 is also storing some array values, like
array1=abc
and abc=("a" "b" "c") etcetera etcetra.........
Note : each subarray under array1 have index 3 i.e. it can max contain 3 values
if i echo ${abc} ... (5 Replies)
Discussion started by: manas_ranjan
5 Replies
3. Shell Programming and Scripting
I want to run an awk split on a value that has been pushed through an array and I was wondering what the syntax should be??
e.g. running time strings through an array and trying to examine just minutes:
12:25:30
10:15:13
08:55:23
awk '
NR==FNR{
... (2 Replies)
Discussion started by: dcfargo
2 Replies
4. Shell Programming and Scripting
i just want to dump my array and see if it contains the values i am expecting. It should print as follows,
ignore=345fht
ignore=rthfg56
.
.
.
ignore=49568g
Here is the code. Is this even possible to do? please help
termReport.pl < $4 | dos2ux | head -2000 | awk '
BEGIN... (0 Replies)
Discussion started by: usustarr
0 Replies
5. Shell Programming and Scripting
Hello I have the file df.tmp
FS is actually the / FS but escape character\ and end of line $ is used in order to fetch exctly / and not other filesystems.
awk '/\/$/ {print $(NF-1)+0}' df.tmp will work properly and return a value eg. 60
but when I am trying to issue the command with the array... (3 Replies)
Discussion started by: drbiloukos
3 Replies
6. Shell Programming and Scripting
I have a file
root@server # cat /root/list12
11.22.33.44
22.33.44.55
33.44.55.66
33.44.55.66
33.44.55.66
I try to pass to array and display unique.
root@server# cat /root/test12.sh
#!/bin/bash
#delcare array badips and accumulate values to array elemenrs
badips=( $( cat... (4 Replies)
Discussion started by: anil510
4 Replies
7. Shell Programming and Scripting
Hello experts,
I'm stuck with this script for three days now. Here's what i need.
I need to split a large delimited (,) file into 2 files based on the value present in the last field.
Samp: Something.csv
bca,adc,asdf,123,12C
bca,adc,asdf,123,13C
def,adc,asdf,123,12A
I need this split... (6 Replies)
Discussion started by: shell_boy23
6 Replies
8. Shell Programming and Scripting
I tried to use variable inside an array variable, but its not working as expected.:wall:
ENV1=123
ENV1=789
ENV1=120
ENV2=567
if
then
name=ENV1
echo "${name}"
echo "${name}"
echo "${name}"
else
name=ENV1
echo "${name}"
fi
Output: ./val.sh 1
123 (2 Replies)
Discussion started by: Jayavinoth
2 Replies
9. UNIX for Dummies Questions & Answers
Hi guys
Let me at first describe the whole thing that I'm trying to do. Lets say I have 100 files like the following one.
Ow 1230 16.000000 -0.834000 16.083957
1.751652398 -17.20094528 -4.450623277
Hw 1231 ... (6 Replies)
Discussion started by: saleheen
6 Replies
10. UNIX for Beginners Questions & Answers
The requirement is i need to find an array value matching with pattern {5:{ , replace that with 5: and reassign that to same array index and print it.
I write something like below and the issue is sed command is not working. If i replace " with "`" the script gives syntax error.how can i... (8 Replies)
Discussion started by: bhagya123
8 Replies