我有一个.command,一个等待用户输入的脚本(比如输入一些内容然后按回车键)它会无限循环。例如,它会告诉用户他们的输入是闰年还是 minecraft 服务器。我让用户像这样运行它:
open a.command
尝试编写一个脚本,使其定期像用户一样向该脚本中输入条目。
我对这样的事情不太走运:
i=5;
while [ $i -gt 0 ]; do
i=$(( $i - 1 )); sleep 10; # do this once every 10 seconds for i times
{{send text to the script a.command in the newly opened window}}
done & open a.command > a.out;
不必输出到 a.out,我只是将结果保存到该文件。
答案1
不需要在 while 循环内进行进程间通信,只需打印到标准输出并将整个循环放入 a.command 中。
因此你的脚本看起来应该是这样的:
i=5;
while [ $i -gt 0 ]; do
i=$(( $i - 1 )); sleep 10; # do this once every 10 seconds for i times
echo "Jan 1, 1970" # just echo or print your input here
done | a.command > a.out;
请注意最后一行中使用|
字符 而不是。&