我想在输出文件中捕获以下 ./symmir 可执行文件的输出。
如果我想继续,可执行文件首先会问一个问题。正如您在以下 KornShell (ksh) 脚本中所见,我对问题的回答是“Y”。我想在回答问题后专门捕获响应。
#!/bin/ksh
./symmir <<EOF
Y
EOF
以下将不起作用,因为它只会将问题重定向到 file1 而不是我回答问题后的响应。
#!/bin/ksh
./symmir >> file1 <<EOF
Y
EOF
感谢您的帮助。
将
#!/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;
}
如果知道答案中的行数,您可以执行以下操作:
# 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
这可能是 EMC symcli symmir 命令吗?
如果是这种情况,请使用该-noprompt
选项,以防止命令要求确认。