Greetings, I know this isn't explicitly a Debian problem, but I have seen many really smart Bash programmers on this list so I figured this was a good place to ask. :-) $ bash --version GNU bash, version 4.2.37(1)-release (x86_64-pc-linux-gnu $ cat /etc/debian_version 7.5 I have a Bash script I am working on where I am getting (supposedly) a two-digit number from the user. I handle all the logic to ensure I am getting two digits and not >2, letters, characters, ect in a different function. By the time I get to this code in my script, I am assuming it is a one or two digit number. Because I need a two digit number I am assuming that my user may have just input a single digit for the first nine numbers without a leading zero. I am doing this in my code like: verifiednum=`printf %02d $uservar` This works really well when they enter only a single digit or 01-07. However, on 08 or 09, this fails. $ cat test.sh #!/bin/bash - printf %02d 07 #This Works. echo "" printf %02d 8 #This Works. echo "" printf %02d 08 #This doesn't. echo "" printf %02d 9 #This Works. echo "" printf %02d 09 #This doesn't. echo "" $ ./test.sh 07 08 ./test.sh: line 6: printf: 08: invalid octal number 00 09 ./test.sh: line 10: printf: 09: invalid octal number 00 I almost want to think that this is a bug, but because it seems to be thinking it is an octal number (which technically it is I suppose :). I am guessing that it just doesn't like what I am doing with printf but I am a bit baffled as to why it only croaks on 08 and 09. 1) Does anyone know what is wrong here? 2) Is there a better way of solving this issue? Thanks! ~Stack~
Attachment:
signature.asc
Description: OpenPGP digital signature