Hey, anyone know why BASH parameter substitution would work on the same system, same account on the command line, but not in a script?

BLAH=${BLAH##+(0)}

Gives "18" for "018" from a command line.

Gives "018" for "018" in a script.

#!/bin/bash explicitly specified

Same thing if I use pattern replacement like ${BLAH/#+(0)/}

Yes, I could just use sed or something for this, but now this is bothering me. It should work?

(I really just need it to not treat numbers like goddamn octal for filenames that often have leading zeroes)

Also no, I'm not going to do it in another language.

This is trivial automation scripting for a cron job, I just have to make sure the processing toolchain doesn't run on files before certain conditions are met.

Sign in to participate in the conversation
Awoo Space

Awoo.space is a Mastodon instance where members can rely on a team of moderators to help resolve conflict, and limits federation with other instances using a specific access list to minimize abuse.

While mature content is allowed here, we strongly believe in being able to choose to engage with content on your own terms, so please make sure to put mature and potentially sensitive content behind the CW feature with enough description that people know what it's about.

Before signing up, please read our community guidelines. While it's a very broad swath of topics it covers, please do your best! We believe that as long as you're putting forth genuine effort to limit harm you might cause – even if you haven't read the document – you'll be okay!