在终端的一个文件中运行各种命令

时间:2016-09-29 08:19:18

标签: command-line terminal command-line-arguments

我遇到了一项学校工作,要求我们编译一个c文件并运行各种参数来执行并​​得到结果,我必须逐个手动键入参数行。

我想知道有没有办法通过将命令写入文件并立即运行来执行命令?像makefile这样的东西,但是对于命令行而不是编译。

例如:

我必须运行一个程序,要求我手动键入

./program 10

./program 100

./program 1000

./program 10000

./program ....

./program ....

./program .....

有没有办法可以将所有这些写入文件并立即运行而无需手动键入所有内容?

谢谢!

5 个答案:

答案 0 :(得分:0)

是的,您可以使用Makefile:添加test目标并将所有测试用例写为此目标的命令。同时使此目标依赖于可执行文件,因此您需要重新编译并运行测试make test

答案 1 :(得分:0)

您可以使用&&运算符;

./program 10 && ./program 100 && ...

在技术说明中 &&essentially a logical AND)的使用通常意味着后续命令仅在前一个命令成功时执行(即返回0 })。

答案 2 :(得分:0)

制作一个这样的剧本:

#!/bin/bash
for i in 10 100 1000; do
  ./program $i
done

将其另存为go

使其可执行:

chmod +x go

运行它:

./go

答案 3 :(得分:0)

Windows批处理示例(source

for %%s in ("10" "100" "1000" "10000") do call program.exe %%s
  1. 保存在文本文件中,例如loop.bat(与program.exe位于同一位置)
  2. 打开cmd.exe(Windows + R - >> cmd.exe - >输入)
  3. 导航到loop.bat的位置
  4. 输入“loop.bat”
  5. Windows powershell示例(source

    $array = @("10", "100", "1000")
    foreach ($element in $array) {
        & .\program.exe $element
    }
    
    1. 保存在文本文件中,例如loop.ps1(与program.exe位于同一位置)
    2. open powershell(Windows Key + R - > powershell - > enter)
    3. 导航到loop.ps1
    4. 的位置
    5. \ loop.ps1

答案 4 :(得分:0)

确定,

将所有命令行放入一个文件中,文件中每行一个命令行,

在Linux中,我们调用该文件:值

./program  .value. 

每个值一行。

然后执行文件。

source values

. values
在Windows中

调用该文件values.bat

然后用

执行文件
values.bat