Am 03.07.2017 um 20:09 hat Eric Blake geschrieben: > 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 %s "..."', and 'echo -e "..."' > with 'printf %b "...\n"', with the optimization that the %s/%b > argument can be omitted if the string being printed is a strict > literal with no '%', '$', or '`' (we could technically also make > this optimization when there are $ or `` substitutions but where > we can prove their results will not be problematic, but proving > that such substitutions are safe makes the patch less trivial > compared to just being consistent). > > In the qemu-iotests check script, fix unusual shell quoting > that would result in word-splitting if 'date' outputs a space. > > In test 051, take an opportunity to shorten the line. > > In test 068, get rid of a pointless second invocation of bash. > > CC: qemu-triv...@nongnu.org > Signed-off-by: Eric Blake <ebl...@redhat.com>
> diff --git a/tests/multiboot/run_test.sh b/tests/multiboot/run_test.sh > index 78d7edf..c8f3da8 100755 > --- a/tests/multiboot/run_test.sh > +++ b/tests/multiboot/run_test.sh > @@ -26,7 +26,7 @@ run_qemu() { > local kernel=$1 > shift > > - echo -e "\n\n=== Running test case: $kernel $@ ===\n" >> test.log > + printf %b "\n\n=== Running test case: $kernel $@ ===\n\n" >> test.log > > $QEMU \ > -kernel $kernel \ Not completely sure why, but this broke the test with whitespace changes like this: -=== Running test case: mmap.elf -m 1.1M === +=== Running test case: mmap.elf -m1.1M === Kevin