13

I'm on a Windows 10 machine with Windows Subsystem for Linux enabled/configured (Ubuntu). To explain my problem let me present you with two scenarios:

Scenario 1:

  1. I start a cmd.exe prompt
  2. I run bash in the cmd.exe prompt
  3. (inside bash) I run a given command, called dwiextract in my case (from a neuroimaging analysis software package)

Works fine suggesting a successful installation of the software package.

Scenario 2:

  1. I start a cmd.exe prompt
  2. I attempt to pass the exact same command directly to bash from cmd.exe by using the following syntax: bash -c dwiextract

I get command not found.

(Note I learned about bash -c here and have used it successfully in other occasions.)

The following image shows exactly what I've done:

example_diagram

My question: Shouldn't these two scenarios be equivalent. Why does Scenario 1 work and Scenario 2 does not work?

Many thanks.

fnery
  • 351

2 Answers2

12

Running bash as an interactive shell (using -i option) solved my problem.

That is: bash -c -i <command>.

fnery
  • 351
0

In addition to ... bash -c -i "..." this worked well for me

wsl -d Debian -u myname -e dwiextract

also with parameters

wsl -d Debian -u myname -e uname -a
zoechi
  • 111