终端(OS X)中的命令队列文件。

6
我想在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个回答

10
也许我误解了你的意思,但这听起来像是典型的 shell 脚本文件。创建一个名为 "myscript.sh" 的文件,将你的命令添加到其中。将第一行设置为:
#!/bin/sh

要告诉OS X如何处理文件。然后标记它为可执行文件(chmod +x myscript.sh),最后通过./myscript.sh来运行它。

这样就可以解决问题了。


是的,看起来这回答了我的问题。我会试一下。 - Stingery

3
您可以通过编写shell脚本来实现这一点,其中包含这些命令。通常,扩展名将为.sh(因此将其命名为commands.sh而不是commands.txt)。
然后,您可以使用bash commands.sh运行它。
另外,如果您的文件的第一行是#!/bin/bash,并且如果您使其可执行(例如通过chmod 755 commands.sh),则应该能够直接执行此文件:./commands.sh
如果需要,其他以#开头的行(或在行后面的任何内容)都将成为注释。
这里有一些教程: 除了bash之外,还有其他shell,但bash是OSX的默认选项(与/bin/sh相同):这是您已在终端内运行的内容。它也是许多Linux发行版的默认选项。

+1 是因为添加 #!/bin/bash 的原因并链接到教程。 - Taylor Price
谢谢。添加第一行并使用“bash”调用文件就完成了。 :) - Pratyush Tripathy

1

是的。这被称为shell脚本,是您的shell(可能是bash,除非您已更改)的功能,而不是Terminal.app本身。

网络上有无数关于shell脚本的资源,但在基本形式中,只需以以下行开始文件:

#!/bin/bash

使用命令chmod +x commands.txt将其设置为可执行文件,并按照您希望运行它们的顺序将命令放入文件中。(请注意,使用.txt扩展名完全合法,但可能会有点混淆)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接