当我在获取包含选项“set-e”的bash脚本后执行windows命令时,WSL突然关闭`

当我在获取包含选项“set-e”的bash脚本后执行windows命令时,WSL突然关闭`,bash,shell,windows-subsystem-for-linux,Bash,Shell,Windows Subsystem For Linux,复制的步骤 请注意,我使用的是WSL(Ubuntu18)版本1。 Windows版本1909(操作系统版本18363.900) 创建一个虚拟bash脚本foo.sh,其中包含选项set-e 在WSL中执行以下命令 在我执行第二个命令explorer.exe之后。WSL突然关闭。我只是尝试了一下,事实上:当我运行explorer时,资源管理器窗口在后台打开,启动资源管理器的进程返回,退出代码为1。我不知道为什么微软以其无穷的智慧决定以这种方式实施它 当然,在交互式shell中使用set-e是疯狂的

复制的步骤

请注意,我使用的是WSL(Ubuntu18)版本1。 Windows版本1909(操作系统版本18363.900)

  • 创建一个虚拟bash脚本
    foo.sh
    ,其中包含选项
    set-e
  • 在WSL中执行以下命令

  • 在我执行第二个命令
    explorer.exe之后。
    WSL突然关闭。

    我只是尝试了一下,事实上:当我运行
    explorer
    时,资源管理器窗口在后台打开,启动资源管理器的进程返回,退出代码为1。我不知道为什么微软以其无穷的智慧决定以这种方式实施它

    当然,在交互式shell中使用
    set-e
    是疯狂的。我建议取消它。如果场景不是交互式shell(您的问题还不完全清楚),但您从脚本内部运行命令,并且确实希望继续使用
    -e
    ,请使用

    explorer.exe || true
    

    保持shell运行。

    set-e
    如果命令返回的值不同于0,则终止shell。
    $ source foo.sh
    $ explorer.exe .
    
    explorer.exe || true