Solved

count in hex

Posted on 2009-05-19
6
675 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 500 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
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
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

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

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…
Utilizing an array to gracefully append to a list of EmailAddresses
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…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:

705 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

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now