2011-12-20 113 views
4

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

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

我怎么能这样做?

回答

7

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

创建一个文件“myscript.sh”,添加你的命令。使第一行

#!/bin/sh 

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

这应该做的伎俩。

+0

是的,它似乎回答了我的问题。我会试试看。 – Stingery 2011-12-20 12:41:33

2

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

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

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

其他以#开头的行(或任何在#之后的行)将会是注释,如果需要的话。

这里有一些教程:

还有其他的壳比bash的太多,但bash的是OSX(同/bin/sh)默认:这就是你已经在终端内运行了。这也是Linux发行版数量的默认值。

+0

+1提到添加#!/ bin/bash和链接到教程的原因。 – 2011-12-21 00:58:25

1

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

大约有shell脚本在网络上无数的资源,但在基本形式,刚开始的文件与行

#!/bin/bash 

使其可执行与命令chmod +x commands.txt,并把你的命令在该文件中您想要运行它们的顺序。 (请注意,使用.txt扩展名虽然完全合法,但可能有点令人困惑)。