终端(OS X),来自文件的命令队列

时间:2011-12-20 12:21:29

标签: macos terminal command

我想在Mac终端中执行命令队列。是否可以准备包含一系列命令的文件,并通过终端提交文件?例如... commands.txt包含几个命令,每行一个:

./executable_file -f sub_a 100
./executable_file -f sub_b 100
./executable_file -f sub_c 100
./executable_file -f sub_d 100
...

我该怎么做?

3 个答案:

答案 0 :(得分:8)

也许我误解了你,但这听起来像是一个典型的shell脚本文件。

创建一个文件“myscript.sh”,将命令添加到其中。制作第一行

#!/bin/sh

告诉OS X如何处理该文件。然后将其标记为可执行文件(chmod + x myscript.sh)并按./myscript.sh运行。

这应该可以解决问题。

答案 1 :(得分:2)

您可以使用包含这些命令的shell脚本执行此操作。通常情况下,扩展名为.sh(因此请将其称为commands.sh而不是commands.txt)。

然后,您可以使用bash commands.sh运行它。

此外,如果您的文件的第一行是#!/bin/bash,并且如果您使其可执行(例如,通过chmod 755 commands.sh),您应该能够直接执行此文件:{{1 }}

如果您需要,以./commands.sh开头的其他行(或行上#之后的任何内容)都将成为评论。

以下是一些教程:

除了bash之外还有其他shell,但是bash是OSX上的默认值(与#相同):它就是你在终端中运行的内容。它也是Linux发行版数量的默认值。

答案 2 :(得分:1)

是。这称为shell脚本,它是shell的一个函数(可能是bash,除非你已经改变它),而不是Terminal.app本身。

网上有无数关于shell脚本的资源,但在基本形式中,只需用行启动文件

#!/bin/bash

使用命令chmod +x commands.txt使其可执行,并按照要运行它们的顺序将命令放入文件中。 (请注意,使用.txt扩展程序虽然完全合法,但可能会有点令人困惑。)