2.068.0 std.process.executeShell how to set the shell?
albatroz via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Sep 1 14:55:28 PDT 2015
Hi, since the upgrade to the latest version the function
executeShell (also the other functions), is not working has it
used to be, older versions of the compiler did not require any
change or setting the SHELL.
How to change the SHELL, that is used by executeShell? userShell
will always return /bin/sh.
I've tested by setting the SHELL to /bin/bash using the
environment function. If I execute echo $SHELL inside the
executeShell it will show /bin/bash has expected.
My issue is that the command I'm executing inside executeShell is
throwing and error and showing that the execution is done by
/bin/sh.
My code:
executeShell("diff -u <(echo "~data1~") <(echo "~data2~")");
Output:
/bin/sh: 1: Syntax error: "(" unexpected
This is caused by a limitation from /bin/sh that cannot perform
process substitution.
Can this commit be the reason?
https://github.com/D-Programming-Language/phobos/commit/a524a3571b18e440c4dd751fcf4e2d00b834fb22
More information about the Digitalmars-d-learn
mailing list