[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#22803: bash printf and negative precision
From: |
Billerbeck, Dirk |
Subject: |
bug#22803: bash printf and negative precision |
Date: |
Thu, 25 Feb 2016 07:18:24 +0000 |
Hello,
I don't know if it's really a bug, if I'm just mistaken or this is the right
address but I just want to give it a try.
I'm using the following bash-builtin printf command:
FUELLLAENGE=8 ; report="REPIBZVAG" ; REPORTFUELLZEICHEN="0" ; printf
'%.8s%*.*d\n' $report 0 $((FUELLLAENGE - ${#report} )) "$REPORTFUELLZEICHEN"
The maximum length of $report is 8 characters but I tested some possible error
situations so in this example it is 9 characters log. I would expect printf to
cut the $report from REPIBVZAG to REPIBZVA and to NOT print any additional
trailing zeros because of the precision value of -1. But a trailing zero is
printed (set -x output):
+ FUELLLAENGE=8
+ report=REPIBZVAG
+ REPORTFUELLZEICHEN=0
+ printf '%.8s%*.*d\n' REPIBZVAG 0 -1 0
REPIBZVA0
Is this really correct? Or shouldn't the negative precision be taken as zero
and no character should be printed?
The bash version is "GNU bash, version 3.2.51(1)-release
(x86_64-suse-linux-gnu)". I know it's an older version but I can't change it as
there are corporate restrictions. The coreutil package is
"coreutils-8.12-6.25.32.33.1".
Best regards
Dirk Billerbeck
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#22803: bash printf and negative precision,
Billerbeck, Dirk <=