2009-07-19 53 views
3

我创建了一个crontab,它将运行一个bash脚本test.sh.这个test.sh文件需要用户输入一些信息,并将用户输入保存到一个变量中。我如何确保用户输入将被保存到test.sh中的变量中,并且当crontab运行脚本时,我可以获得我想要的输出?用用户输入运行crontab

例如,我有2个文件,file1.sh和file2.sh。我把file2.sh放在文件1.sh中。然后运行file1.sh,获取用户输入,并将其保存在某处。 crontab将运行file2.sh,并从“保存某处变量”中检索值。反正有这个吗?

回答

5

如果脚本从stdin读取输入,只是从文件(使用包装脚本)重定向输入。

#! /bin/sh 
test.sh < data.in 

如果这不适合你(即你有你的脚本中调用telnet等一些交互shell程序,你可以使用Expect自动化的互动。

0

这似乎是一个奇怪的事情。问问自己这些问题:

你真的想要一个弹出每次的cron运行时,要求用户对输入值

时,有没有人在键盘上,会发生什么

01?
+0

什么如果e.g我有2个文件,file1.sh和file2.sh。我把file2.sh放在文件1.sh中。然后运行file1.sh,获取用户输入,并将其保存在某处。 crontab将运行file2.sh,并从*保存的某处变量*中检索值。反正有这个吗? – Herves 2009-07-19 13:44:55

1
  1. file1.sh获取用户输入并将其写入/etc/file2.dat
  2. file2.sh读取/etc/file2.dat和为所欲为需要