Association de scripts shell Linux (.sh) sous Windows 10 à Bash ou WSL [dupliquer]

3

Cette question a déjà une réponse ici:

Si vous avez déjà essayé d'exécuter un script linux .sh sous Windows 10 en double-cliquant dessus, après l'avoir affecté à bash.exe (Ubuntu Bash pour Windows 10) par défaut, vous avez sans doute remarqué qu'il ne s'ouvrirait pas.

Pourquoi ne s'ouvre-t-il pas, et comment puis-je résoudre ce problème?

Alex Sim
la source

Réponses:

6

EDIT: la clé de registre et les informations ci-dessous sont OBSOLETE. Veuillez vous reporter à la nouvelle version fournie ici: Puis-je glisser-déposer des fichiers dans un script .sh à l'aide de Bash sous Ubuntu sous Windows ou Windows Subsystem for Linux (WSL)?

Cela peut être fait en modifiant une seule clé de registre (ou plus pour des fonctionnalités supplémentaires).

Bien sûr, je lierai un fichier .reg (en fait trois fichiers reg compressés) pour installer rapidement la solution de contournement (avec l'association d'icônes et (facultatif) nano edit enabler) sans avoir à modifier le registre vous-même. Si vous téléchargez et installez le doit seulement suivre l'étape 1;

FILE (seulement suivre l’étape 1, puis télécharger et installer): http://www.mediafire.com/file/r5uxk9c0hhucvt9/ShellBashScriptOpen_v3.rar

Mais pour satisfaire votre saine méfiance, voici comment vous pouvez le faire vous-même:

.

1) Définir bash.exe comme programme par défaut pour les fichiers .sh

Il vous suffit de cliquer avec le bouton droit de la souris sur un fichier sh, d’accéder aux propriétés, de localiser «ouvrir avec», de modifier> more_apps> find_an_app_in_this_PC et de sélectionner C: \ Windows \ System32 \ bash.exe;

Appliquez et vous êtes prêt à partir.

.

2) Double-clic réel pour ouvrir la clé

créer la clé de registre suivante avec regedit

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

a) Si vous voulez garder bash ouvert après la fin du script

définir la valeur (par défaut) sur

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

b) Si vous voulez fermer bash après la fin du script

définir la valeur (par défaut) sur

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

.

3) Ouvrir en tant qu'administrateur

créer la clé de registre suivante avec regedit

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

a) Si vous voulez garder bash ouvert après la fin du script

définir la valeur (par défaut) sur

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

b) Si vous voulez fermer bash après la fin du script

définir la valeur (par défaut) sur

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

.

4) Attribuer la touche icône par défaut (facultatif [mais plus froid])

créer la clé de registre suivante

HKEY_CLASSES_ROOT\Applications\bash.exe\DefaultIcon

et définissez la valeur (par défaut) sur

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

.

5) Ajouter un clic droit> option d'édition (avec l'éditeur nano) (facultatif)

créer la clé de registre suivante

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

et définissez la valeur (par défaut) sur

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