启动并将脚本命令传递给终端脚本

启动并将脚本命令传递给终端脚本

我有一个.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;

请注意最后一行中使用|字符 而不是。&

相关内容