1

我想在输出文件中捕获以下 ./symmir 可执行文件的输出。

如果我想继续,可执行文件首先会问一个问题。正如您在以下 KornShell (ksh) 脚本中所见,我对问题的回答是“Y”。我想在回答问题后专门捕获响应。

#!/bin/ksh
./symmir <<EOF
Y
EOF

以下将不起作用,因为它只会将问题重定向到 file1 而不是我回答问题后的响应。

#!/bin/ksh
./symmir >> file1 <<EOF
Y
EOF

感谢您的帮助。

4

3 回答 3

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;
 }
于 2013-03-19T18:04:35.950 回答
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
于 2013-03-19T18:13:23.380 回答
0

这可能是 EMC symcli symmir 命令吗?

如果是这种情况,请使用该-noprompt选项,以防止命令要求确认。

于 2013-03-19T21:57:13.897 回答