我想使用ssh在许多计算机上安装java,所以我想编写一个bash脚本(大致):
for c in computers
do
scp jre--.rpm $c
ssh $c 'sudu -s; chmod a+x jre--.rpm ; ./jre--.rpm; echo "success!"'
done
问题是在java安装期间我需要“读取”通知并在结尾处输入“是”.我该怎么做?有没有比“期待”更简单的方法?如果不是我如何在bash脚本中使用它?
非常感谢
最佳答案
首先,将必要的击键记录到这样的文件:
cat > keystrokes
完成录制击键后按Ctrl C.检查文件内容.像TAB这样的某些键可能无法正确记录,但您仍然可以使用文本编辑器编辑该文件.注意,在控制台上向下滚动(例如,当从更多读取输出时)通常可以使用空格键来完成.
您可以像使用rpm一样scp这个文件.接下来,将击键文件的内容传递给安装程序的标准输入:
cat keystrokes | ./someinstaller
编辑:很抱歉听到它不起作用.也许你可以看看expect,这是一个为这类东西设计的Unix工具.我认为它包含在大多数gnu / linux发行版中.如果你熟悉python,你可能更喜欢pexpect.