我有一个C程序,我编译成一个可执行文件。我想创建一个启动C程序的脚本,运行脚本包含的几个命令并最终退出脚本。 C程序要求其输入(命令)作为用户指定的参数。
我尝试过这样的脚本:
#/bin/bash
./program
command 1
command 2
..
quit # A quit command within the program
但程序似乎并不明白,在我开始执行后,以下命令应该是C程序的参数。
我试图检查我的程序的命令,但也许一个单独的C程序检查这将更好。你会怎么建议它被调试?
答案 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