在bash脚本中的正确时间输入命令

在bash脚本中的正确时间输入命令,bash,Bash,我有一个bash脚本,它运行一些命令。这些命令接受输入,我希望能够自动执行,因为输入总是一样的 如果有人要求,是否可以一次发送一条 Y {JustPressEnter} {JustPressEnter} {JustPressEnter} yes APassword 完整命令如下(实际IP已删除) 两个不同的答案: 使用expect自动执行命令。显示了一个示例,expect用于通过密码输入自动执行apt get这是一篇长篇大论expect的文章 以批处理模式写入每个命令。可以接受所有这些东西作

我有一个bash脚本,它运行一些命令。这些命令接受输入,我希望能够自动执行,因为输入总是一样的

如果有人要求,是否可以一次发送一条

Y
{JustPressEnter}
{JustPressEnter}
{JustPressEnter}
yes
APassword
完整命令如下(实际IP已删除)

两个不同的答案:

  • 使用
    expect
    自动执行命令。显示了一个示例,
    expect
    用于通过密码输入自动执行
    apt get
    这是一篇长篇大论
    expect
    的文章

  • 以批处理模式写入每个命令。可以接受所有这些东西作为参数
    apt get install-y packagename
    将在每次提示时假定为“是”。如果代码编写正确,则无需进行键盘交互

谢谢:)。我使用了
-y
apt-get标志,并使用参数对
ssh-keygen
进行排序。我现在要做的就是将密码自动输入到ssh命令中。我会看看expect,然后试着用它来工作。
apt-get install ssh-client \
    && mkdir /var/www/.ssh/ \
    && chown www-data:www-data /var/www/.ssh/ \
    && sudo -u www-data ssh-keygen -t rsa \
    && cat /var/www/.ssh/id_rsa.pub | ssh root@1.2.3.4 'cat >> .ssh/authorized_keys' \
    && sudo -u www-data touch /var/www/.ssh/known_hosts \
    && sudo -u www-data ssh-keygen -R 1.2.3.4 \
    && sudo -u www-data ssh-keyscan -H 1.2.3.4 >> /var/www/.ssh/known_hosts