3 ms·
Th specific part that I understood as your argument for non-POSIX solutions: "'for x in $y; do printf "$a%s$b" "$x"; done' is equivalent to 'printf "$a%s$b" $y
by acqq 7y ago
Th specific part that I understood as your argument for non-POSIX solutions:
"'for x in $y; do printf "$a%s$b" "$x"; done' is equivalent to 'printf "$a%s$b" $y' (assuming neither a nor b contain format specifiers). similarly, 'for i in {1..100}; do printf "$a"; done' is equivalent to 'printf "$a%s.0" {1..100}'. unfortunately, brace expansion is not POSIX, but these are both significantly more efficient (both in code size and execution time) than the loop methods."
I didn't understand why you write that part at all, considering the goals of the program we discuss (which is to demonstrate some git primitives in POSIX compliant shell code).
- Hello71 7y ago'for x in $y; do printf "$a%s$b" "$x"; done' is used in the code already. I am proposing that it be changed to 'printf "$a%s$b" $y', which is also POSIX compliant, shorter (even including a comment), and faster. I included the part about brace expansion as a side note, not proposing that it be used.
- acqq 7y ago> 'printf "$a%s$b" $y', which is also POSIX compliant, shorter Yes, indeed, thanks for pointing that, it's documented: "The format operand shall be reused as often as necessary to satisfy the argument operands." https://pubs.opengroup.org/onlinepubs/9699919799/utilities/printf.html https://pubs.opengroup.org/onlinepubs/9699919799/utilities/p...