我想在输出文件中捕获以下./symmir可执行文件的输出。
可执行文件首先询问是否要继续。正如您在以下KornShell(ksh)脚本中看到的那样,我回答" Y"问题。我想在回答问题后专门捕获回复。
#!/bin/ksh
./symmir <<EOF
Y
EOF
以下内容无法正常工作,因为它只会将问题重定向到file1,而不是我回答问题后的响应。
#!/bin/ksh
./symmir >> file1 <<EOF
Y
EOF
感谢您的帮助。
答案 0 :(得分:0)
会
#!/bin/ksh
./ask_me <<EOF >> file1
Y
EOF
工作?
但是,您的代码
#!/bin/ksh
./ask_me >> file1 <<EOF
Y
EOF
在我的测试中也能正常工作。
获取/打印字符串的代码是(ask_me.c):
#include <stdio.h>
int main()
{
char input[256];
gets(input); /* Unsafe */
printf("You have entered '%s'\n", input);
return 0;
}
答案 1 :(得分:0)
如果知道答案中的行数,你可以这样做:
# assumed 1 line in the answer
./symmir <<EOF |tail -n 1 >>file1
Y
EOF
或者,如果您可以让symmir
输出问题并将答案输出到不同的流 - 一个输出到stdout,一个输出到stderr,您只能重定向其中一个:
# assumed symmir writes answer to stderr: echo $answer 1>&2
./symmir <<EOF 2>>file1
Y
EOF
答案 2 :(得分:0)
这可能是EMC symcli symmir命令吗?
如果是这种情况,请使用-noprompt
选项,以防止命令要求确认。