我有一个接受2个提示(y / n)的程序。例如:
stopprogram
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
...
...
有什么想法吗?谢谢!
答案 0 :(得分:1)
您的问题可能是因为<<
和EOF
之间的空格。
请注意,有一个特殊程序yes
用于重复输出由其所有参数组成的行。默认情况下,它输出&#39; y。它是专门为强制脚本化流程创建的。
因此,您的命令的简短版本将如下所示:
at now +5 minutes <<EOF
yes | stopprogram
EOF
答案 1 :(得分:0)
我找到了解决方案。这将有效:
at now+5 min <<EOF
bash -l -c 'yes | stopprogram'
EOF
就是这样!