On AIX, /bin/sh causes a testsuite failure with an output like this: Running /home/collinfunk/findutils-4.10.0.40-d4417/find/testsuite/find.gnu/execdir-multiple.exp ... FAIL: execdir-multiple.new-O0, ./runme[6]: syntax error at line 7 : `newline or ;' unexpected ./runme[6]: syntax error at line 7 : `newline or ;' unexpected ./runme[6]: syntax error at line 7 : `newline or ;' unexpected ./runme[6]: syntax error at line 7 : `newline or ;' unexpected
Here is a small test program to show the issue: $ cat test.sh #!/bin/sh for arg; do echo "$arg" done $ ./test.sh a b c test.sh[3]: 0403-057 Syntax error at line 4 : `newline or ;' is not expected. But, if we move the 'do' AIX /bin/sh no longer chokes: $ cat test.sh #!/bin/sh for arg; do echo "$arg" done bash-5.2$ ./test.sh a b c a b c Normally I don't think this is worth fixing. But since it only affects one test case I have attached a patch that fixes it. Collin
>From c46de123b5e876ad7c50db113551f04d04faf5b1 Mon Sep 17 00:00:00 2001 From: Collin Funk <collin.fu...@gmail.com> Date: Sat, 25 Jan 2025 21:53:17 -0800 Subject: [PATCH] tests: adjust shell syntax that breaks AIX /bin/sh * find/testsuite/find.gnu/execdir-multiple.exp: Move the 'do' of a for loop to the same line so AIX doesn't fail. --- find/testsuite/find.gnu/execdir-multiple.exp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/find/testsuite/find.gnu/execdir-multiple.exp b/find/testsuite/find.gnu/execdir-multiple.exp index f292fffa..4ce23c3d 100644 --- a/find/testsuite/find.gnu/execdir-multiple.exp +++ b/find/testsuite/find.gnu/execdir-multiple.exp @@ -22,8 +22,7 @@ set -e here=`pwd` d=`basename $here` -for arg; -do +for arg; do echo "$d" "$arg" done | LC_ALL=C sort } -- 2.48.1