有没有办法将UNIX代码放在文本文件中,然后再运行它?

时间:2015-12-31 14:30:54

标签: linux unix

我开始进入Linux / UNIX,很多东西都使用终端,所以我想知道,我怎么能创建将要执行的命令行文本,就像在Windows' .BAT?

3 个答案:

答案 0 :(得分:4)

是的,它被称为“shell脚本”(因为命令解释器被称为“shell”)。基本上是:

  • 在文件的第一行写#!/bin/bash。这告诉系统运行命令的shell。如果您愿意,可以使用与bash不同的shell。
  • 无需特殊的文件扩展名。某些脚本的名称以.sh结尾,类似于.bat,但它是可选的。在Unix / Linux中,包括脚本在内的程序通常根本没有扩展名。
  • 使文件可执行chmod +x myscript
  • 除非它位于$PATH变量的目录中,否则您需要在运行时指定路径,例如: ./myscript(假设它在当前目录中)而不仅仅是myscript

您可能会发现在主目录下创建bin目录很有用,并通过将此行添加到$HOME/bin文件中,将$PATH添加到.bashrc:< / p>

PATH=$HOME/bin:$PATH

然后,您可以将脚本放在个人bin目录中,只需输入命令名称(例如myscript)即可从任何地方运行它们。

脚本开头的#!行通常称为“shebang” - “sharp”(#)和“bang”(!)的缩写。它不仅限于shell脚本:用Python和Perl等解释型编程语言编写的程序使用相同的机制来运行pythonperl解释器。

答案 1 :(得分:2)

首先,将您的脚本保存在文件中,例如script.sh ...

#!/bin/bash

echo "Hello world"

#!/bin/bash部分被称为shebang。这意味着无论何时使用./script.sh运行它,都会通过bash解释器运行,而不是尝试解释字节码。

然后运行以下命令:

chmod +x ./script.sh

有时您可能需要sudo这个。然后你应该能够像这样运行它:

./script.sh

正如您所料,您可以在上面的文件中添加更多行,以便按顺序执行更多操作。最后,记住shell脚本是移动操作文件等的好方法,但并不总是大型编程项目的最佳选择。把它想象成&#34;胶水&#34;。

答案 2 :(得分:1)

你在谈论shell脚本。最常见的shell是bash

Bash脚本与shell脚本非常相似。存在一些差异,但您应该稍后查看。现在,这是一个shell脚本的简单示例。

#!/bin/sh
echo Hello World!

将其输入到vi会话中,另存为hello.sh和chmod u+x ./hello.sh以授予用户对脚本的执行权限。然后./hello.sh和“Hello World!”会出现。

第一行是真正的技巧 - 它告诉shell使用什么解释器来运行文件的其余部分。在这种情况下,它是/ bin / sh,通常与/ usr / bin / bash链接。

所以它比.bat和.cmd文件更多一点,但它更通用,因为第一行几乎可以是任何东西。