0

我有一个接受 2 个提示(y/n)的程序。例如:

停止程序

do you want to stop the program (Y/N)? y
do you want to send an email to the admin about it (Y/N)? y

现在,我想使用“at”命令来自动化它。以下适用于 Solaris 但不适用于 Linux RHEL:

at now +5 minutes << EOF
 > for i in {1..2}
 > do
 > echo 'y'
 > done | stopprogram
 > EOF
commands will be executed using /usr/bin/bash
...
...

任何想法?谢谢!

4

2 回答 2

1

您的问题可能是因为 和 之间的<<空间EOF

请注意,有一个特殊的程序yes可以重复输出由其所有参数组成的行。默认情况下它输出'y'。它是专门为强制脚本流通过这些提示而创建的。

因此,您的命令的简短版本将如下所示:

at now +5 minutes <<EOF
   yes | stopprogram
EOF
于 2016-06-13T14:28:35.897 回答
0

我找到了解决方案。这将起作用:

at now+5 min <<EOF
bash -l -c 'yes | stopprogram'
EOF

而已!

于 2016-06-20T11:49:12.223 回答