StudentAnwser=()
inputScriptFile=001.sh
while IFS= read -r line;
do
StudentAnwser+=( "$line" )
done < <( sh $inputScriptFile test.txt )
it returns a error
foo.sh: line 22: syntax error near unexpected token `<'
foo.sh: line 22: ` done < <( sh $inputScriptFile test.txt )'
what's wrong with that? I follow the solution from other question for reading line from result
You get the error because process substitution (the
<(some command)
part) is not a standard feature (defined in POSIX) insh
, which means it may work on some OS but may not in others or in the same OS with different configuration.You clarified that you have
#!/bin/bash
at the top of your script, but I guess you still run the script viash foo.sh
, as such,#!/bin/bash
will be ignored and the script is interpreted bysh
.I assume your default shell is
bash
(runecho $SHELL
), so all problems are gone if you paste the script in terminal and execute.==== UPDATE ====
Possible solution if my assumption is correct:
Leave
#!/bin/bash
as it is, make your script an executable bychmod +x foo.sh
. Then run it directly by./foo.sh