Bagaimana cara meluncurkan Bash di Ubuntu pada Windows dari aplikasi pihak ketiga?

3

Saya telah menginstal Windows Subsystem untuk Linux (WSL) untuk Bash di Ubuntu pada Windows (berikut ini disingkat "Bash".) cmd.exe saya bisa berlari bash -c gcc --version sebaik yang bisa saya gunakan cmd -k bash -c gcc --version dari menu mulai. Namun, saya perhatikan bahwa saya tidak dapat menjalankan perintah yang sama dari aplikasi pihak ketiga, mis. Teks Luhur atau Atom.

Pertimbangkan sistem build berikut untuk Teks Sublime dan, untuk saat ini, abaikan fakta bahwa ini tidak akan membangun apa pun:

{
  "cmd": [ "bash", "-c" "gcc", "--version" ],
  "working_dir": "${project_path:${folder}}",
  "selector" : "source.c"
}

Menjalankan perintah build akan menghasilkan Error: 0x80070057. Dengan mode lawas untuk cmd.exe diaktifkan, kesalahan terbaca Unsupported console settings. In order to use this feature the legacy mode must be disabled.

Di antara hal-hal lain saya sudah mencoba membuatnya bekerja:

  1. Menggunakan jalur absolut ke bash.exe, mis. %SystemRoot%\System32\bash.exe

  2. Jalankan file Batch di alat build (konten: bash -c gcc --version ). Khususnya, file Batch berfungsi saat dijalankan dari cmd.exe

  3. Ubah perintah build menjadi [ "cmd", "/k", "bash", "-c" "gcc", "--version"]

  4. Menambahkan "shell": true ke file build saya

Kadang-kadang kesalahan berubah menjadi "[bash] tidak dikenali sebagai perintah internal atau eksternal", meskipun C:\Windows\System32 ada di jalanku.

Apakah ada batasan bahwa Bash hanya dapat diluncurkan dari cmd.exe? Apakah ada solusi yang memungkinkan saya untuk meluncurkan batch dari Sublime Text?

idleberg
sumber
Apakah Anda menonaktifkan mode lama untuk cmd? Anda bisa lihat caranya nonaktifkan mode lawas di komentar dari jawaban teratas.
DrZoo
Ide pasangan ... Coba ubah cmd baris ke "cmd": [ "cmd.exe", "-k", "bash -c gcc --version" ], dan / atau coba tambahkan shell: true.
Ƭᴇcʜιᴇ007
Terima kasih atas saran Anda, saya sudah mencoba ini (sebagaimana disebutkan dalam pertanyaan). Saya mengedit posting saya dan memasukkan upaya saya yang lain ke dalam daftar bernomor, yang seharusnya lebih terbaca.
idleberg

Jawaban:

0

Saya tidak memiliki lingkungan Anda untuk menguji ini, tetapi saya sarankan mengganti "bash" dengan "bash.exe". Perintah Windows cmd.exe membutuhkan akhiran .exe untuk menjalankan perintah bash.exe. Perintah WSL / usr / bin / bash tidak sama dengan perintah Windows C: \ Windows \ System32 \ bash.exe.

rhmccullough
sumber