Связывание сценариев оболочки Linux (.sh) в Windows 10 с Bash или WSL

5299
Alex Sim

Если вы когда-нибудь пытались запустить сценарий .sh linux в Windows 10, дважды щелкнув его, после назначения его по умолчанию для bash.exe (Ubuntu Bash для Windows 10) вы, скорее всего, заметили, что он не откроется.

Почему он не открывается, и как я могу это исправить?

0

1 ответ на вопрос

2
Alex Sim

РЕДАКТИРОВАТЬ: раздел реестра и информация ниже - УСТАРЕЛО, обратитесь к новой версии, представленной здесь: Могу ли я перетаскивать файлы в сценарий .sh, используя Bash в Ubuntu для Windows или Windows Subsystem для Linux (WSL)?

Это можно сделать, отредактировав один ключ реестра (или больше для дополнительных функций).

Я, конечно, сошлюсь на файл .reg (на самом деле это три архива с zip-файлами), чтобы быстро установить обходной путь (вместе с ассоциацией значков и (необязательно) активатором nano edit) без необходимости редактировать реестр самостоятельно. Если вы скачаете и установите его, вы должен следовать только шагу 1;

ФАЙЛ (только выполните шаг 1, затем загрузите и установите): http://www.mediafire.com/file/r5uxk9c0hhucvt9/ShellBashScriptOpen_v3.rar

Но чтобы удовлетворить ваше здоровое недоверие, вот как вы можете сделать это самостоятельно:

,

1) Установите bash.exe в качестве программы по умолчанию для файлов .sh

Просто щелкните правой кнопкой мыши файл sh, перейдите в свойства, найдите «открыть с помощью», измените> more_apps> find_an_app_in_this_PC и выберите C: \ Windows \ System32 \ bash.exe;

Подайте заявку, и вы готовы.

,

2) Фактический двойной щелчок, чтобы открыть ключ

создайте следующий ключ реестра с помощью regedit

HKEY_CLASSES_ROOT\Applications\bash.exe\shell\open\command 

а) Если вы хотите оставить bash открытым после завершения скрипта

установите значение (по умолчанию)

"C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\"; cd ~; bash;" 

б) Если вы хотите закрыть bash после завершения скрипта

установите значение (по умолчанию)

"C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\";" 

,

3) Открыть как опция администратора

создайте следующий ключ реестра с помощью regedit

HKEY_CLASSES_ROOT\Applications\bash.exe\shell\runas\command 

а) Если вы хотите оставить bash открытым после завершения скрипта

установите значение (по умолчанию)

"C:\Windows\System32\bash.exe" -c " sudo bash \"$(grep -oE '[^\\]+$' <<< '%L')\"; cd ~; bash" 

б) Если вы хотите закрыть bash после завершения скрипта

установите значение (по умолчанию)

"C:\Windows\System32\bash.exe" -c " sudo bash \"$(grep -oE '[^\\]+$' <<< '%L')\";" 

,

4) Назначить значок по умолчанию (необязательно [но кулер])

создайте следующий раздел реестра

HKEY_CLASSES_ROOT\Applications\bash.exe\DefaultIcon 

и установите значение (по умолчанию)

%USERPROFILE%\AppData\Local\lxss\bash.ico,0 

,

5) Добавить правую кнопку мыши> изменить параметр (с нано-редактором) (необязательно)

создайте следующий раздел реестра

HKEY_CLASSES_ROOT\Applications\bash.exe\shell\edit\command 

и установите значение (по умолчанию)

"C:\Windows\System32\bash.exe" -c "nano -miST 4 \"$(grep -oE '[^\\]+$' <<< '%L')\""