通过仅在远程存在的ssh运行bash命令

时间:2019-05-21 14:57:13

标签: bash ssh command-line-interface

我正在编写一个bash脚本,其中涉及将ssh-sing到远程主机并在其中运行命令。这本身不是问题。问题是我想运行一个本地不存在的命令,仅在远程上。该脚本以bash: line 1: type: remote_only_command: not found失败,即使它已成功连接到远程主机并且可以正常运行基本命令。

如果我按下并手动运行,则可以在远程主机上运行该命令。我尝试在远程主机上编写一个单独的bash脚本,并通过脚本(sh remote_script.sh来运行该脚本,但这会得到相同的命令未找到错误。

ssh $REMOTE var=$var 'bash -s' << 'EOF'
ls # works no problem, lists files on the remote server
remote_only_command # bash: line 1: type: remote_only_command: not found
EOF

是否可以运行只能从远程主机访问而不能在运行脚本的本地访问的命令?

1 个答案:

答案 0 :(得分:2)

我认为这是应该工作的方式,因为该命令仅在远程主机上执行。但我怀疑您的问题是环境,这是ssh所不允许的。尝试使用命令的完整路径,例如:

 /path/to/remote_command