如何在Windows 10上创建和运行Bash Shell脚本

随着Windows 10的Bash shell的推出,您现在可以在Windows 10上创建和运行Bash shell脚本。您还可以将Bash命令合并到Windows批处理文件或PowerShell脚本中。

即使你知道自己在做什么,这也不一定像看起来那么简单。Windows和UNIX使用不同的行尾字符,并且可以在Bash环境中的不同位置访问Windows文件系统。

如何在Windows 10上编写Bash脚本

相关:如何在Windows 10上安装和使用Linux Bash Shell

在Windows上编写shell脚本时,请记住Windows和类似UNIX的系统(如Linux)在shell脚本的文本文件中使用不同的“行尾”字符。

换句话说,这意味着您不能简单地用记事本编写shell脚本。将文件保存在记事本中,Bash将无法正确解释该文件。但是,您可以使用更高级的文本编辑器-例如,Notepad++允许您通过单击编辑>EOL转换>UNIX/OSX格式为文件指定UNIX行尾字符。

但是,最好只在Bash环境本身中编写shell脚本。基于Ubuntu的Bash环境附带vi和Nano文本编辑器。vi编辑器功能更强大,但是如果您以前从未使用过它,那么您可能想从Nano开始。如果你是新手,它会更容易使用。

例如,要在Nano中创建一个bash脚本,您可以在bash中运行以下命令:

nano ~/myscript.sh

这将打开Nano文本编辑器,指向用户帐户主目录中名为“myscript.sh”的文件。(“~”字符表示您的主目录,因此完整路径为/home/username/myscript.sh。)

您的shell脚本以该行开始:

#!/bin/bash

相关:Shell脚本初学者指南:基础知识

输入要运行的命令,每个命令都在自己的行上。该脚本将依次运行每个命令。在一行之前添加一个“#”字符,将其视为“注释”,它可以帮助您和其他人理解脚本,但不会作为命令运行。有关更高级的技巧,请参阅更详细的Linux上Bash脚本指南。同样的技术也适用于Windows上的Ubuntu上的Bash。

请注意,无法从Bash环境中运行Windows程序。您只能使用Linux终端命令和实用程序,就像在典型的Linux系统上一样。

例如,让我们在这里使用一个基本的“hello world”脚本作为示例:

#!/bin/bash # set the STRING variable STRING="Hello World!" # print the contents of the variable on screen echo $STRING

如果您使用的是Nano文本编辑器,则可以通过按Ctrl+O,然后按Enter来保存文件。按Ctrl+X关闭编辑器。

使脚本可执行,然后运行它

您可能希望将脚本设为可执行文件,这样您就可以更轻松地运行它。在Linux上,这意味着您需要赋予脚本文件可执行权限。为此,请在终端中运行以下命令,并将其指向您的脚本:

chmod +x ~/myscript.sh

要运行该脚本,您现在可以通过键入其路径在终端中运行它。以后要启动脚本时,只需打开Bash shell并键入脚本路径即可。

~/myscript.sh

(如果脚本在当前目录中,您可以使用./myscript.sh运行它)

如何在Bash脚本中使用所有Windows文件

相关:如何在Windows中访问Ubuntu Bash文件(以及在Bash中访问Windows系统驱动器)

要访问脚本中的Windows文件,您需要在/mnt/c下指定它们的路径,而不是它们的Windows路径。例如,如果要指定C:\Users\Bob\Downloads\test.txt文件,则需要指定/mnt/c/Users/Bob/downloads/test.txt路径。有关更多详细信息,请参阅我们在Windows 10的Bash shell中的文件位置指南。

如何将Bash命令合并到批处理脚本或PowerShell脚本中

相关:如何在Windows 10上设置默认Linux分发

最后,如果您有要将命令合并到其中的现有批处理文件或PowerShell脚本,则可以直接使用bash-c命令运行Bash命令。

例如,要在命令提示符或PowerShell窗口中运行Linux命令,可以运行以下命令:

bash -c "command"

此技巧允许您将Bash命令添加到批处理文件或PowerShell脚本中。当Bash命令正在运行时,将出现*Bash shell窗口。

更新:如果安装了多个Linux环境,可以使用wslconfig命令选择运行bash-c命令时使用的默认Linux环境。

要从Windows中创建指向Bash脚本的快捷方式,只需像正常一样创建快捷方式即可。对于快捷方式的目标,使用上面概述的bash-c命令,并将其指向您创建的Bash脚本。

例如,您可以将快捷方式指向“bash-c”~/myscript.sh“”来运行上面的示例脚本。您也可以只从命令提示符或PowerShell窗口运行此命令。

相关文章