在此文档中通过SSH运行命令时不存在TTY
我试图在here-document中通过SSH运行命令: ssh example.com <<END sudo /etc/init.d/apache2 reload END 除了当我尝试运行需要输入的内容(例如sudo的密码)时,该选项通常可以正常工作。在这种情况下,我收到以下消息: sudo: no tty present and no askpass program specified 我知道我可以使用-tSSH上的标志来分配伪tty,例如: ssh -t example.com "sudo /etc/init.d/apache2 reload" 它将起作用,但是当我对here-document尝试相同的操作时,它将不起作用,并且我将收到关于不存在tty的相同错误: ssh -t example.com <<END sudo /etc/init.d/apache2 reload END 知道如何使这项工作有效吗? 另外,如果您想知道为什么我希望它与here-document一起使用,而不是仅将其传递在同一行上,那是因为输入命令(可能有几个)来自脚本读取的配置文件而且我听说它避免了转义引号,双引号等命令的麻烦。