【发布时间】:2014-01-23 06:50:18
【问题描述】:
我有一个 C++ 程序,它以交互方式从用户(标准输入)读取各种输入,并且运行良好。但现在我需要从 shell 脚本(bash)执行这个程序,并且只需要从这个脚本传递这些输入,而不是手动从用户传递。 我的二进制名称是 myprog,这是我在脚本中尝试过的。但它不起作用。
myprog << \
__EOF__ | tail -n+21 | grep ":" >> logfile.log 2> /dev/null
$bdy
$bdm
$bdd
$bth
$btm
$bts
$edy
$edm
$edd
$eth
$etm
$ets
EOF
这些变量包含一些日期和时间,例如年 = 2014、月 01、小时 = 04、分钟 = 59 和秒 = 20
【问题讨论】:
-
我们需要有关您的问题的更多信息。首先,“它不起作用”在这里永远不会给你答案,因为我们不知道什么特别不起作用。你的程序的输入是什么样的?您的输入、预期和实际输出是什么?
-
谢谢。不工作意味着它没有从脚本中获取输入。在 myprog 中,如果用户不提供任何输入并按 ENTER 键,我会设置默认值。因此,对于上面提到的命令,myprog 仅采用默认值。
标签: c++ shell input pipe stdin