随着windows10的bashshell的到来,您现在可以在windows10上创建和运行bashshell脚本了。您还可以将Bash命令合并到Windows批处理文件或PowerShell脚本中。
即使你知道你在做什么,这也不一定像看上去那么简单。Windows和UNIX使用不同的行尾字符,并且Windows文件系统可以在Bash环境中的不同位置访问。
相关:如何在windows10上安装和使用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然后回车来保存文件。按Ctrl+X关闭编辑器。
您可能希望使脚本可执行,这样您就可以更轻松地运行它。在Linux上,这意味着您需要给脚本文件可执行的权限。为此,在终端中运行以下命令,并将其指向脚本:
chmod +x ~/myscript.sh要运行脚本,现在只需在终端中键入其路径即可运行它。以后无论何时要启动脚本,只要打开bashshell并键入脚本的路径即可。
~/myscript.sh(如果脚本在当前目录中,则可以使用它运行/myscript.sh)
相关:如何在Windows中访问Ubuntu Bash文件(以及Bash中的Windows系统驱动器)
要访问脚本中的Windows文件,需要在/mnt/c下指定它们的路径,而不是它们的Windows路径。例如,如果要指定C:\Users\Bob\Downloads\测试.txt文件,则需要指定/mnt/c/Users/Bob/Downloads/测试.txt路径。有关更多详细信息,请参阅我们的Windows10的bashshell文件位置指南。
相关:如何在Windows10上设置默认的Linux发行版
最后,如果要将命令合并到现有的批处理文件或PowerShell脚本中,可以直接使用Bash-c命令运行Bash命令。
例如,要在命令提示符或PowerShell窗口中运行Linux命令,可以运行以下命令:
bash -c "command"这个技巧允许您将Bash命令添加到批处理文件或PowerShell脚本中。Bash命令运行时,将出现bashshell窗口。
更新:如果安装了多个Linux环境,那么可以使用wslconfig命令选择运行bash-c命令时使用的默认Linux环境。
要在Windows中创建Bash脚本的快捷方式,只需像普通方式一样创建快捷方式。对于快捷方式的目标,使用上面概述的bash-c命令并将其指向您创建的bash脚本。
例如,您可以将快捷方式指向“bash-c”~/myscript.sh文件“”来运行上面的示例脚本。也可以从命令提示符或PowerShell窗口运行此命令。
... 首先,让我们从定义“shell脚本”开始,即编写要在bashshell中运行的脚本。从技术上讲,Powershell等其他脚本语言也可以被称为“shell脚本”,但为什么首先要关注shell脚本,特别是Bash脚本呢? ...
... 两者都将显示为“Run命令”,可以选择该命令立即打开bashshell。使用这两种方法的区别在于,它们在/mnt/c/Windows/System32目录中打开。这意味着您可以在Windows10中浏览System32子目录。 ...
...Linux应用程序的完全兼容层。 我们已经介绍了windows10的新bashshell中可以做的很多事情,因此为了方便起见,我们将所有这些指南汇总到一个大列表中。 windows上linux入门 相关:如何在windows10上安装和使用Linux Bash Shell 您可以在...
...安装后启动新的Linux发行版来设置它时,系统会要求您为bashshell创建一个用户帐户。Windows将其称为“UNIX用户帐户”。因此,如果您提供名称“bob”和密码“letmein”,则Linux用户帐户的名称为“bob”,并且具有主文件夹“/home/bob...
...dora和更多的Linux发行版很快就要上市了。 关于windows10的bashshell你需要知道什么 相关:Windows10新BashShell的所有功能 这不是一个虚拟机、一个容器或为Windows编译的Linux软件(比如Cygwin)。相反,windows10提供了一个完整的Windows子系...
...命令: wslconfig /setdefault Ubuntu 相关:如何在windows10上从bashshell外部运行Linux命令 现在,当您运行wsl或bash命令时,您选择的Linux发行版将打开。 使用wsl命令或bash-c命令运行单个命令时,也会使用默认的Linux发行版。 如何运行多个...
...版本。 如何检查你有哪个版本的ubuntu 相关:Windows10新BashShell的所有功能 如果您不确定当前Bash环境中使用的是哪个版本的Ubuntu,请打开Bash窗口并运行以下命令: l**_release -a 它会告诉你是运行ubuntu14.04还是ubuntu16.04。如果你正在...
...作符一样。 相关内容:Shell脚本初学者指南:基础知识 bashshell包含一些执行类似功能的附加高级操作符。如果您正在编写bash脚本,它们将特别有用。有关更多详细信息,请参阅《高级Bash脚本指南》中的I/O重定向一章。
默认情况下,大多数Linux发行版都包含bashshell,但是您也可以切换到另一个shell环境。Zsh是一个特别流行的替代品,还有其他的贝壳,比如ash、dash、fish和tcsh。但有什么区别,为什么会有这么多? 贝壳做什么? 在Linux上,当您...