On Sun, Mar 17, 2024 at 09:25:10AM +0000, Tim Woodall wrote: > Hi, > > I've been cleaning up some bash scripts
Good > and, where possible, addressing things reported by shellcheck. Oh, shellcheck, https://www.shellcheck.net/ > I have this one-liner (which works but shellcheck doesn't like the > quoting) > > idxsrc="$( newest_file $( APT_CONFIG=${APT_CONFIG} apt-get indextargets > --format '$(FILENAME)' 'Identifier: Packages' ))" > > SC2016: Expressions don't expand in single quotes, use double quotes for that. > SC2046: Quote this to prevent word splitting. > > The first is easy enough to avoid by using backslash instead. But the > second I can't see how to fix as a one-liner. > > I can make shellcheck happy by doing it like this: > > mapfile -t idxpackages < <( APT_CONFIG=${APT_CONFIG} apt-get indextargets > --format \$\(FILENAME\) 'Identifier: Packages' ) > idxsrc="$( newest_file "${idxpackages[@]}")" For what it is worth: - a shell is nice and good tool - shellcheck is an afterthought - my shellcheck experience learnt me that it can't see the difference between "dangerous" and "potentionally dangerous" Thing I'm trying to tell: Avoid that shellcheck blocks you Groeten Geert Stappers -- Silence is hard to parse