跨平台命令行脚本(例如.bat和.sh)

时间:2015-04-30 11:46:57

标签: bash shell command-line cross-platform

我注意到Windows 7可以像执行.bat文件一样执行.sh文件。这让我想知道是否可以写一个.sh文件,以便它可以在Windows Linux中执行(让我们说bash)。

我想到的第一件事是制作一个if语句,以便Windows和Ubuntu可以处理它并跳转到相应的块来执行特定于平台的命令。 怎么可以这样做?

注意:我知道这不是好习惯。我也知道像Python这样的脚本语言比混合语法命令行脚本更适合解决这个问题。我只是好奇......

2 个答案:

答案 0 :(得分:10)

你可以用这个:

rem(){ :;};rem '
@goto b
';echo sh;exit
:b
@echo batch

它是有效的shell脚本和批处理,并将根据它的运行方式执行不同的块。

修改echo@echo行以执行您想要的操作。

答案 1 :(得分:-1)

AFAIK,您无法直接从Windows cmd.exe运行.sh文件。为此,您需要一个* nix仿真层来运行shell。查看Cygwin Msys/MinGW