Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

count in hex

Posted on 2009-05-19
6
Medium Priority
?
688 Views
Last Modified: 2013-12-26
Hi folks,

I need a script to count in hex when passed from $1. I've managed to figure out so much, don't have time to carry on at the moment and could use come help.

If I try and pass a hex value in any format and try to set it from $1 I get:

root@host/export/home/user$ ./create-map.sh 0xC1
./create-map.sh[7]: 0xC1: bad number

If I leave LUNID as null, it will successfully count from 0. Help appreciated.
#!/usr/bin/ksh
# script to create EMC mappings
 
# set lun to hex
LUNID=$1
typeset -i16 LUNID
 
touch /var/tmp/host-lunmap
 
for dev in `cat /var/tmp/devs-host`; do
        echo "map dev $dev to dir 07C lun=$LUNID" >> /var/tmp/host-lunmap
        echo "map dev $dev to dir 10C lun=$LUNID" >> /var/tmp/host-lunmap
        ((LUNID=LUNID+1))
        echo "LUNID is: ${LUNID#16#}"
done

Open in new window

0
Comment
Question by:Rowley
  • 3
  • 3
6 Comments
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 24421931
How about 16#C1  ?
wmp
 
0
 
LVL 68

Accepted Solution

by:
woolmilkporc earned 2000 total points
ID: 24422024
... or use in your script
LUNID=16#$1
and give only C1 as the argument.
0
 
LVL 13

Author Comment

by:Rowley
ID: 24422042
Cool, thanks. I ended up figuring it out anyway as I had some more time to dig. Ended up using:

let LUNID=LUNID+16#$INI

Which seemed to do the trick. I'll try the other suggestions later. Cheers!
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
LVL 13

Author Comment

by:Rowley
ID: 24422664
OK...I saw somewhere how to remove the base value from the string, extra brownie points if you could help with that!
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 24422954
Well,
what do you mean with 'base value'?
If the goal was to remove the '16#' part, that's what you already did -
${LUNID#16#}
From ksh docs -
${variable#pattern}     If the pattern matches the beginning of the variable's value, delete the shortest part that matches and return the rest
0
 
LVL 13

Author Comment

by:Rowley
ID: 24426848
Ahhh, so I did. Forgot to do the same to the lun=$LUNMAP bit.

heh...

thanks.
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Installing FreeBSD… FreeBSD is a darling of an operating system. The stability and usability make it a clear choice for servers and desktops (for the cunning). Savvy?  The Ports collection makes available every popular FOSS application and packag…
I promised to write further about my project, and here I am.  First, I needed to setup the Primary Server.  You can read how in this article: Setup FreeBSD Server with full HDD encryption (http://www.experts-exchange.com/OS/Unix/BSD/FreeBSD/A_3660-S…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
In a previous video, we went over how to export a DynamoDB table into Amazon S3.  In this video, we show how to load the export from S3 into a DynamoDB table.
Suggested Courses

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question