您能否编写一个包含 bash(或 sh)和 powershell(或 cmd、bat)的脚本,以便可以在 Win 和 *nix 上执行同一个文件?

您能否编写一个包含 bash(或 sh)和 powershell(或 cmd、bat)的脚本,以便可以在 Win 和 *nix 上执行同一个文件?

我有一个需要在 Windows、Linux 和 MacOS 上运行的脚本。

我知道 Windows 使用文件扩展名来确定如何运行脚本,而 *nix 将使用#!

我希望有足够的语法重叠,以便我可以使用 if 语句来重定向并运行特定于平台的下脚本。

本质上是这样的流程:

这是entry.ps1假设 powershell 7+(这是 Windows 10 上的默认设置,对吧?)和 bash

#!/bin/sh      <-- ignored by powershell
$SHELL = "" && & ".\main.ps1" || ./main.sh

相关内容