[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Suggested BASH Improvement
From: |
BRUCE FOWLER |
Subject: |
Suggested BASH Improvement |
Date: |
Tue, 17 Sep 2024 19:50:05 -0400 (EDT) |
An interesting problem I ran into recently:
I have a shell script that I run about once a month that
"screen-scrapes" from the output of another program using the
substring capability, e.g. ${data_line:12:2}. This is pulling
out the two-digit month ranging from "01" to "12".
This worked fine, even giving the right answers, for
months earlier in the year. Then came August, and it went
sideways because the leading "0" was forcing the number to be
interpreted as octal. My first reaction was, What's going on,
this has run just fine for months. The second reaction was,
WTF, who uses octal anymore? But I understand it is because
of C-language compatibility. I could use the [base#]n form
but that gets awkward.
My proposal is to add a new "shopt" option, say called "XOCTAL",
that would suppress the octal interpretation of numbers with
leading zeros. The default would be "off", so scripts would
run just as now. Just the existence of this option might
alert non-expert shell coders to the subtle and surprising
"bug" that I encountered.
Even the venerable BASH shell still has room for modernization
and improvement. Thank you for your interest and consideration.
|======================
|Bruce Fowler 410-320-8200
|[ 39°1.55'N - 76°28.16'W ]
|======================
- Suggested BASH Improvement,
BRUCE FOWLER <=