如何防止在远程主机上运行脚本时出现乱码?

如何防止在远程主机上运行脚本时出现乱码?

当前场景: 我正在尝试从 Solaris 5.10 机器运行 Unix shell 脚本,该脚本中的任务之一是 ssh 到另一台 Linux 主机(ssh 密钥对已设置)并运行一组命令。

问题: 虽然脚本运行良好,但在远程框中运行的所有命令均未在我的 Solaris 终端中正确显示。我使用 set -x 来显示脚本正在执行的所有步骤。由于某种原因,所有远程步骤都会在屏幕中间开始打印,有时如果远程服务器上运行的命令很长,它不会向我显示其运行的完整命令。我有最宽的显示器,我的终端宽度不是问题。我的 Solaris 和 Linux 机器之间的默认终端宽度是否存在兼容性问题?希望我的问题很清楚。

答案1

有时,通过网络连接运行(特别是当权限更改时,例如使用sudo),终端大小信息​​不会传播到远程计算机。当然,当这种情况发生时,一些程序会对何时格式化其输出、换行等感到困惑,

您通常可以使用resize程序询问终端的宽度,并修复它。您可以在远程计算机上运行它,它会发送转义字符来询问终端其大小,然后它会更新远程计算机对实际大小的想法。

相关内容