Sort by: Newest, Oldest, Most Relevant
When calling `$ /bin/sh -c "$(cat foo); foo"`, the `$(cat foo)` part is evaluated in the outer `sh` process, so the actual argument your `sh` invocation is getting is: ``` $ /bin/sh -c "foo() { printf "Hello World" }; foo" ``` You have the function definition there and the call which works. When calling `$ /bin/sh -c '$(cat foo); foo'`, the `$(cat foo)` part is evaluated in your `sh` process, so what's actually happening is `$(cat foo)` is trying to interpret the first "command" from the `foo` file, `foo()` which is obviously `not found`.

matched #cwlpruq score:13.6 Search by:
This is twtxt search engine and crawler. Please contact Support if you have any questions, concerns or feedback!