命令结果在本地工作,但不能通过ssh

时间:2019-02-19 21:16:44

标签: bash shell

我在远程计算机上运行此命令,它会提供所需的结果:

local# /usr/local/sbin/i2c_eeprom show-serial
serial = 5070045

当我从远程服务器运行它时,它不起作用:

server# sshpass -f pass.out ssh 192.168.1.1 -n -o "StrictHostKeyChecking=no" "i2c_eeprom show-serial"
serial = TBD Serial

为什么不能正确显示结果?我尝试过先创建脚本文件,然后将输出重定向到远程文件,然后读取文件,但没有得到相同的结果。我总是得到TBD Serial。关于如何远程运行此命令以及如何在本地执行操作的任何建议?

1 个答案:

答案 0 :(得分:0)

我通过在服务器上创建bash脚本来解决此问题,如下所示:

#!/bin/bash -l
/usr/local/sbin/i2c_eeprom show-serial

我将其复制到客户端并通过ssh执行。关键是shebang行中的“ -l”。我在这里找到了这个解决方案。 What does this command do? "exec bash -l"