On 7/15/19 6:19 PM, astian wrote: >> I doubt it makes any difference to the timing, which I think >> Chet has already answered, but it is worth pointing out that these >> two commands ... >> >> printf '%s\n' "`printf %s "$i"`" >> printf '%s\n' "$(printf %s "$i")" >> >> which (I believe)) are supposed to be the same thing, using the >> different (ancient, and modern) forms of command substitution aren't >> actually the same. In the first $i is unquoted, in the second it is >> quoted. Here, since its value is just a number and IFS isn't being >> fiddled, there is not likely to be any effect, but if you really >> want to make those two the same, the first needs to be written as >> >> printf '%s\n' "`printf %s \"$i\"`" >> >> Such are the joys of `` command substitutions (just avoid them). >> >> kre > > Dear Robert Elz, I'm aware of several of its peculiarities and I typically do > avoid them. However, is it true that $i is unquoted in the first case?
POSIX makes it undefined behavior, and different shells do it differently. Bash makes the $i quoted within the `` string, as you discovered. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://tiswww.cwru.edu/~chet/