我创建了一个crontab,它将运行一个bash脚本test.sh.此test.sh文件需要用户输入一些内容,并将用户输入保存到变量中。我如何确保将用户输入保存到test.sh中的变量,并且当crontab运行脚本时,我可以得到我想要的输出?
例如我有2个文件,file1.sh和file2.sh。我把file2.sh放在1.sh文件中。我然后运行file1.sh,获取用户输入,并将其保存在某处。 crontab将运行file2.sh,并从“ saved somewhere变量”中检索值。反正有吗?
答案 0 :(得分:5)
如果脚本从stdin
读取输入,只需从文件重定向输入(使用包装脚本)。
#! /bin/sh
test.sh < data.in
如果这对您不起作用(即您的脚本调用了一些交互式shell程序,如telnet,则可以使用Expect
自动执行交互。
答案 1 :(得分:1)
file1.sh
获取用户输入并将其写入/etc/file2.dat
file2.sh
读取/etc/file2.dat
并做任何需要的事情答案 2 :(得分:0)
这似乎是一件奇怪的事情。问自己这些问题:
每次cron运行时,你真的想要一个弹出窗口询问用户输入值吗?
当键盘上没有人时会发生什么?