使用脚本运行在程序中运行多个命令的程序

时间:2015-10-09 17:48:45

标签: c bash

我有一个C程序,我编译成一个可执行文件。我想创建一个启动C程序的脚本,运行脚本包含的几个命令并最终退出脚本。 C程序要求其输入(命令)作为用户指定的参数。

我尝试过这样的脚本:

#/bin/bash
./program
command 1
command 2
..
quit # A quit command within the program

但程序似乎并不明白,在我开始执行后,以下命令应该是C程序的参数。

我试图检查我的程序的命令,但也许一个单独的C程序检查这将更好。你会怎么建议它被调试?

2 个答案:

答案 0 :(得分:3)

您需要告诉shell脚本命令是否输入到程序中:

#!/bin/bash

./program << END
command 1
command 2
..
quit    
END

<<运算符告诉shell,以下行被送到给定程序的stdin,直到找到只显示END的行。

答案 1 :(得分:0)

第一个程序:

#include <stdio.h>

int main(int argc, char *argv[])
{
        while ( *++argv  )
                printf("%s\n", *argv);
        return 0;
}

第二个程序:

#!/bin/bash

./program1 argument1 argument2 argument3

一种常见的脚本习惯用法是使用\反斜杠字符将命令的参数参数继续到下一行。如下:

#!/bin/bash

./stack1 \
argument1 \
argument2 \
argument3