Запуск сценария bash в WSL через сценарий powershell

#powershell #windows-subsystem-for-linux

#powershell #подсистема Windows для Linux

Вопрос:

Я пытаюсь запустить скрипт, который запускает терминал WSL (ubuntu1804), а затем запустить скрипт bash в этом терминале

 .ubuntu1804.exe;
cd test_directory;
node server.js;
  

Однако после первой команды терминал открывается, однако две другие команды не выполняются

Ответ №1:

.ubuntu1804.exe сам по себе открывает интерактивную оболочку, которая синхронно выполняется PowerShell.

То есть, пока вы не отправите exit в этой интерактивной оболочке для его завершения управление не будет возвращено PowerShell, поэтому последующие команды — cd test_directory и note server.js — не только не отправляются .ubuntu1804.exe , как вы предполагали, но затем выполняются PowerShell.

Вместо этого вы должны передать команды для запуска .ubuntu1804.exe через run подкоманду:

 .ubuntu1804.exe run 'cd test_directory; node server.js'
  

Примечание: После node завершения работы управление будет возвращено PowerShell.