我正在尝试在远程服务器上编写交互式脚本,其默认shell为zsh。我一直在尝试两种不同的方法来实现这个目的:
方法1: sudo sysctl vm.vdso_enabled=0
方法2: ssh -t <user>@<host> "$(<serverStatusReport.sh)"
我一直在使用方法1直到现在,当我遇到以下问题时 - 我有一段代码运行,具体取决于当前目录中是否存在某些文件:
ssh <user>@<host> "bash -s" < serverStatusReport.sh
我不能为我的生活找出这种差异的来源。我认为不同之处可能是script2被管道传输到bash而我的原始脚本正在运行zsh ...但考虑到在服务器上逐字运行相同的命令,使用其默认的zsh shell,正确返回...我我很难过。
:(非常感谢任何帮助!
答案 0 :(得分:0)
我想在执行方法1时,本地shell会扩展"$(<serverStatusReport.sh)"
,而不是远程。您可以通过以下方式轻松检查:
ssh -t <user>@<host> "$(<hostname)"
serverStatusReport.sh
脚本是否也在本地主机的PATH中?
我不明白为什么你收到这条消息而不是错误信息。