Linux 通过ssh连接使用的脚本不';不要执行命令。如果直接在ssh机器上执行,则会执行

Linux 通过ssh连接使用的脚本不';不要执行命令。如果直接在ssh机器上执行,则会执行,linux,bash,shell,ssh,script,Linux,Bash,Shell,Ssh,Script,我需要使用ssh连接执行脚本,然后脚本应该通过第二个ssh连接执行第二个脚本 到目前为止,脚本已正确创建、复制和执行。但是,在上一个shh连接中,脚本中的命令似乎根本无法获得选项 这是我所拥有的一个例子: 脚本1,使用ssh-T执行user@machine1“script1.sh”来自本地计算机: #/垃圾箱/垃圾箱 *使用scp将script2.sh复制到machine2上的正确目标* ssh-Tuser@machine2“location/script2.sh” Script2,由mach

我需要使用ssh连接执行脚本,然后脚本应该通过第二个ssh连接执行第二个脚本

到目前为止,脚本已正确创建、复制和执行。但是,在上一个shh连接中,脚本中的命令似乎根本无法获得选项

这是我所拥有的一个例子:

脚本1,使用ssh-T执行user@machine1“script1.sh”来自本地计算机:

#/垃圾箱/垃圾箱
*使用scp将script2.sh复制到machine2上的正确目标*
ssh-Tuser@machine2“location/script2.sh”
Script2,由machine1中的第一个脚本执行:

#/垃圾箱/垃圾箱
cd路径/of/script2
*一些不相关的东西*
bjobs-V#有问题的指挥
当脚本在machine2上手动执行时,它可以正常工作,当通过ssh连接执行相同的脚本时,我得到
未知选项:V

我尝试了我能想到的或在互联网上找到的一切:

bjobs \-V#未知选项:V
bjobs'-V'#未知选项:V
选项=(-V)
bjobs“\${options[@]}”未知选项:V
command=“bjobs-V”
eval\$command#未知选项:V
我尝试了其他命令,得到:

ls-lla#忽略-lla选项
选项=(-lla)
ls“\${options[@]}”工作正常
free-g#工作正常
选项=(-g)
免费的“\${options[@]}”功能正常
如果我通过machine1和machine2手动连接并使用
/script2
执行脚本,所有这些变体都可以正常工作

有人知道发生了什么吗?我没有主意了

使用tripleee的建议进行编辑:

ssh-Tuser@machine2 
bjobs型
bjobs是/usr/share/lsf/9.1/linux2.6-glibc2.3-x86_64/bin/bjobs
ssh-Tuser@machine2bjobs型
bjobs是/usr/bin/bjobs

最直接的解决办法是在脚本开头将
/usr/share/lsf/9.1/linux2.6-glibc2.3-x86_64/bin
添加到
路径中,或者使用要运行的
bjobs
版本的完整路径

PATH=/usr/share/lsf/9.1/linux2.6-glibc2.3-x86_64/bin:$PATH

:
/usr/share/lsf/9.1/linux2.6-glibc2.3-x86_64/bin/bjobs-V

引用未知选项根本不会更改命令接收的内容。您可能有两个不同版本的
bjobs
,其中一个在登录时执行(可能是因为您的
PATH
会有所不同),另一个版本可能是非交互式shell的旧版本。尝试从交互式shell和从
ssh
键入bjobs
,然后进行比较。请你的问题包括这些调试细节。引用部分只是出于绝望。我根据你的建议编辑了这个问题。似乎有些不同!