将 Windows 10 上的 Linux Shell(.sh)脚本与 Bash 或 WSL 关联

将 Windows 10 上的 Linux Shell(.sh)脚本与 Bash 或 WSL 关联

如果您曾尝试在 Windows 10 上双击运行 .sh Linux 脚本,在默认将其分配给 bash.exe(适用于 Windows 10 的 Ubuntu Bash)后,您很可能会注意到它无法打开。

为什么它打不开?我该如何解决这个问题?

答案1

编辑:下面的注册表项和信息已过时,请参阅此处提供的新版本:我可以使用 Windows 上的 Ubuntu 或 Windows Subsystem for Linux (WSL) 上的 Bash 将文件拖放到 .sh 脚本中吗?

这可以通过编辑单个注册表项(或编辑多个注册表项以获得额外功能)来完成。

我当然会链接一个 .reg 文件(实际上是三个压缩的 reg 文件)来快速安装解决方法(以及图标关联和(可选)nano 编辑启动器),而无需自己编辑注册表,如果您下载并安装它,您只需按照步骤 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

a) 如果你想在脚本完成后保持 bash 打开

将(默认)值设置为

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

b) 如果你想在脚本完成后关闭 bash

将(默认)值设置为

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

3)以管理员身份打开选项

使用 regedit 创建以下注册表项

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

a) 如果你想在脚本完成后保持 bash 打开

将(默认)值设置为

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

b) 如果你想在脚本完成后关闭 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)添加右键单击>编辑选项(使用 nano 编辑器)(可选)

创建以下注册表项

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

并将(默认)值设置为

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

相关内容