我的 ubuntu 20.04 计算机上安装了两个版本的程序 ( unison
)。一种是通过安装sudo apt install
,另一种是snap版本。该程序仅适用于 snap 版本。
当我在 bash shell 中从命令行运行该程序时,它工作正常(我假设它使用 snap 版本)。当我从 bash 脚本内部运行相同的命令时,该程序无法运行。我认为这是因为它使用的是非快照版本。命令是
unison profile -sshargs '-i ~/.ssh/key' -auto
bash 脚本是
#!/bin/bash
unison profile -sshargs '-i ~/.ssh/key' -auto
如何在 bash 脚本中获得与交互式 shell 中相同的行为?
细节:
“不起作用”意味着我在脚本中运行时收到此错误消息:
致命错误:从服务器收到意外标头:预期为“Unison 2.48\n”,但收到“Unison 2.51 with OCaml >= 4.01.2\n\000\000\000\000\017”,与“Unison 2.5”不同。发生这种情况的原因可能是您在客户端和服务器计算机上安装了不同版本的 Unison,或者因为您的连接失败并且有人正在打印错误消息,或者因为您的远程登录 shell 在启动 Unison 之前正在打印某些内容。