Oh, ok. I have executed the examples for you now. What I expected was also in the first mail:
1) The one.make.sh.log has the expected output. The same commands executed from a Makefile (one.make.log) do not behave as expected. This also holds for this command executed from the command line. 2) The two.make.log has the expected. The same commands executed from the bash script do not behave as expected. I'm having trouble obtaining the desired results with the bash script. Regards, Mischa Baars. On Mon, Mar 11, 2024 at 6:27 PM Paul Smith <psm...@gnu.org> wrote: > On Mon, 2024-03-11 at 18:14 +0100, Mischa Baars wrote: > > The actual command invocations (a Makefile, a make.sh script) can be > > found in the attachment, as indicated on the first line of the mail. > > In the attachment there are two directories, one and two, belonging > > to 1) and 2) respectively. > > That's not what I asked: I asked YOU to run the commands on YOUR system > and cut and paste the results of the run into your email message, with > an explicit explanation of exactly what is wrong with the results and > what you wanted to see instead. What errors did you get? Or what was > unexpected about the behavior? > > I'm not interested in running random scripts on my system that were > downloaded from an email, or examining their behavior to make sure > they're OK, or setting up a container to run them in, or guessing what > you wanted to happen, etc. > A container? These are no viri, these are scripts :) > Or maybe someone else will want to do that work instead. > > But before putting in more effort on the "misbehaving" makefile, read > this part of my response carefully: > > > But before you do that, be aware that make does NOT invoke /bin/bash > > as its shell. It invokes /bin/sh. On some systems /bin/sh is > > actually an alias for bash. On other systems it isn't. > > > > If you want your makefile to always use bash as its shell, you should > > add an explicit: > > > > SHELL := /bin/bash > > > > to your makefile to force it. Maybe that will solve your problem. > > If not we'll need details such as I mention above. > > and verify in your response you added the suggested line to your > makefile and it didn't help (in the situation where the makefile was > behaving in an unexpected way). > No. Doesn't help the tiniest bit.
SECONDS=5; for (( i=0;i<32;i++ )); do { exit ${i}; } & pid[${i}]=${!}; done; sleep ${SECONDS}; for (( i=0;i<32;i++ )); do wait -n ${pid[${i}]}; e=${?}; echo "$(printf %3u ${i}) pid ${pid[${i}]} exit ${e}"; done; /bin/bash: line 1: wait: 1747087: no such job 0 pid 1747087 exit 127 /bin/bash: line 1: wait: 1747088: no such job 1 pid 1747088 exit 127 /bin/bash: line 1: wait: 1747089: no such job 2 pid 1747089 exit 127 /bin/bash: line 1: wait: 1747090: no such job 3 pid 1747090 exit 127 /bin/bash: line 1: wait: 1747091: no such job 4 pid 1747091 exit 127 /bin/bash: line 1: wait: 1747092: no such job 5 pid 1747092 exit 127 /bin/bash: line 1: wait: 1747093: no such job 6 pid 1747093 exit 127 /bin/bash: line 1: wait: 1747094: no such job 7 pid 1747094 exit 127 /bin/bash: line 1: wait: 1747095: no such job 8 pid 1747095 exit 127 /bin/bash: line 1: wait: 1747096: no such job 9 pid 1747096 exit 127 /bin/bash: line 1: wait: 1747097: no such job 10 pid 1747097 exit 127 /bin/bash: line 1: wait: 1747098: no such job 11 pid 1747098 exit 127 /bin/bash: line 1: wait: 1747099: no such job 12 pid 1747099 exit 127 /bin/bash: line 1: wait: 1747100: no such job 13 pid 1747100 exit 127 /bin/bash: line 1: wait: 1747101: no such job 14 pid 1747101 exit 127 /bin/bash: line 1: wait: 1747102: no such job 15 pid 1747102 exit 127 /bin/bash: line 1: wait: 1747103: no such job 16 pid 1747103 exit 127 /bin/bash: line 1: wait: 1747104: no such job 17 pid 1747104 exit 127 /bin/bash: line 1: wait: 1747105: no such job 18 pid 1747105 exit 127 /bin/bash: line 1: wait: 1747106: no such job 19 pid 1747106 exit 127 /bin/bash: line 1: wait: 1747107: no such job 20 pid 1747107 exit 127 /bin/bash: line 1: wait: 1747108: no such job 21 pid 1747108 exit 127 /bin/bash: line 1: wait: 1747109: no such job 22 pid 1747109 exit 127 /bin/bash: line 1: wait: 1747110: no such job 23 pid 1747110 exit 127 /bin/bash: line 1: wait: 1747111: no such job 24 pid 1747111 exit 127 /bin/bash: line 1: wait: 1747112: no such job 25 pid 1747112 exit 127 /bin/bash: line 1: wait: 1747113: no such job 26 pid 1747113 exit 127 /bin/bash: line 1: wait: 1747114: no such job 27 pid 1747114 exit 127 /bin/bash: line 1: wait: 1747115: no such job 28 pid 1747115 exit 127 /bin/bash: line 1: wait: 1747116: no such job 29 pid 1747116 exit 127 /bin/bash: line 1: wait: 1747117: no such job 30 pid 1747117 exit 127 /bin/bash: line 1: wait: 1747118: no such job 31 pid 1747118 exit 127
0 pid 1746688 exit 0 1 pid 1746689 exit 1 2 pid 1746690 exit 2 3 pid 1746691 exit 3 4 pid 1746692 exit 4 5 pid 1746693 exit 5 6 pid 1746694 exit 6 7 pid 1746695 exit 7 8 pid 1746696 exit 8 9 pid 1746697 exit 9 10 pid 1746698 exit 10 11 pid 1746699 exit 11 12 pid 1746700 exit 12 13 pid 1746701 exit 13 14 pid 1746702 exit 14 15 pid 1746703 exit 15 16 pid 1746704 exit 16 17 pid 1746705 exit 17 18 pid 1746706 exit 18 19 pid 1746707 exit 19 20 pid 1746708 exit 20 21 pid 1746709 exit 21 22 pid 1746710 exit 22 23 pid 1746711 exit 23 24 pid 1746712 exit 24 25 pid 1746713 exit 25 26 pid 1746714 exit 26 27 pid 1746715 exit 27 28 pid 1746716 exit 28 29 pid 1746717 exit 29 30 pid 1746718 exit 30 31 pid 1746719 exit 31
STRINGIZED: 0, STRING: one and two STRINGIZED: 0, STRING: one and two STRINGIZED: 1, STRING: one and two STRINGIZED: 1, STRING: one and two STRINGIZED: 0, STRING: one and two STRINGIZED: 0, STRING: one and two STRINGIZED: 1, STRING: one and two STRINGIZED: 1, STRING: one and two <command-line>: warning: missing terminating " character /usr/bin/ld: cannot find and: No such file or directory /usr/bin/ld: cannot find two": No such file or directory collect2: error: ld returned 1 exit status ./make.sh: line 31: ./main: No such file or directory <command-line>: warning: missing terminating " character /usr/bin/ld: cannot find and: No such file or directory /usr/bin/ld: cannot find two": No such file or directory collect2: error: ld returned 1 exit status ./make.sh: line 32: ./main: No such file or directory <command-line>: warning: missing terminating " character /usr/bin/ld: cannot find and: No such file or directory /usr/bin/ld: cannot find two": No such file or directory collect2: error: ld returned 1 exit status ./make.sh: line 33: ./main: No such file or directory <command-line>: warning: missing terminating " character /usr/bin/ld: cannot find and: No such file or directory /usr/bin/ld: cannot find two": No such file or directory collect2: error: ld returned 1 exit status ./make.sh: line 34: ./main: No such file or directory
STRINGIZED: 0, STRING: one and two STRINGIZED: 0, STRING: one and two STRINGIZED: 1, STRING: one and two STRINGIZED: 1, STRING: one and two STRINGIZED: 0, STRING: one and two STRINGIZED: 0, STRING: one and two STRINGIZED: 1, STRING: one and two STRINGIZED: 1, STRING: one and two STRINGIZED: 0, STRING: one and two STRINGIZED: 0, STRING: one and two STRINGIZED: 1, STRING: one and two STRINGIZED: 1, STRING: one and two