我有一个程序可以接收来自用户的交互式输入。一切正常。我不想为这个应用程序做一些测试。我想从一个 bash 脚本传递多个命令。
首先,应用程序要求(使用 scanf)输入文件名。之后,应用程序进入交互模式,并在 while 循环中使用 fgets 从标准输入获取输入。
如何从 bash 脚本启动此应用程序?
应用启动:
-asks for input file
-enters interactive mode and waits for user commands
-let's say we type in stdin the string "print_dog"
-when the app receives the string "print_dog" it prints "dog" in a log file
-and so on
我不想写一个 bash 脚本来测试这个应用程序。例如,如果我在交互式输入中写入 print_dog 2 次,则输出应该是
狗
狗
我想运行一个可以模拟这种行为的脚本(以某种方式从脚本传递输入文件并传递命令“print_dog”几次),然后检查日志文件并查看输出是否正确
int main(){
char buff[100];
FILE *fd = fopen("log_file", "r");
while(1){
fgets(buff, 100, stdin);
buff[strlen(buff)-1] = '\0';
if(strcmp(buff,"sth") == 0)
fprintf(fd, "Something");
if(strcmp(buff, "exit") == 0)
break;
}
printf("Closing app\n");
return 0
}