On 06/30/2017 09:38 AM, Max Reitz wrote: > On 2017-06-28 16:21, Eric Blake wrote: >> POSIX says that backslashes in the arguments to 'echo', as well as >> any use of 'echo -n' and 'echo -e', are non-portable; it recommends >> people should favor 'printf' instead. This is definitely true where >> we do not control which shell is running (such as in makefile snippets >> or in documentation examples). But even for scripts where we >> require bash (and therefore, where echo does what we want by default), >> it is still possible to use 'shopt -s xpg_echo' to change bash's >> behavior of echo. And setting a good example never hurts when we are >> not sure if a snippet will be copied from a bash-only script to a >> general shell script (although I don't change the use of non-portable >> \e for ESC when we know the running shell is bash). >> >> Replace 'echo -n "..."' with 'printf "..."', and 'echo -e "..."' >> with 'printf "...\n"'. >> >> In the qemu-iotests check script, also fix unusual shell quoting >> that would result in word-splitting if 'date' outputs a space. >> >> Signed-off-by: Eric Blake <[email protected]> >> ---
> Question 1: Who's going to take this? :-) It's test-related, touching mostly iotests. But it's also a candidate for qemu-trivial (I'll cc them on v2). > > Question 2: This breaks 171 if TEST_DIR contains a % (e.g. > "TEST_DIR=/tmp/foo%% ./check -raw 171"). Is that OK? No. A more formal fix is using 'printf %s "..."' in place of 'echo -n "..."', if the "..." contains any substitutions. The extra %s is not needed when there are no risky substitutions. I'll spin up a v2. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature
