IT序号网

shell之使用ssh运行脚本

wyy 2025年12月25日 编程语言 27 0

我使用机器A,并且我想运行机器B中存在的脚本。

我做了普通的命令:

ssh user@machine_B_adress '. script.sh' 

问题是我在脚本中使用了一些机器A无法解释的命令。因此我找不到命令:(例如)
ksh: sqlplus:  not found 

我试图通过以下方式打开嘘:
ssh user @ machine_B_adress

然后运行脚本,就可以了!!!

请您参考如下方法:

假设user @ machine_B的 shell 是bash,则第一个示例'ssh user@machine_B_adress '. script.sh',bash为交互式/非交互式 session 设置 shell env的方式有所不同。

参见man bash关于交互式shell

看起来您可以通过添加bash -l -c来模拟交互式环境

$ ssh user@machine_B_address "bash -l -c '. script.sh' 

我的快速测试是将调试回显添加到远程用户的 .bash_profile
$ ssh foouser@jdsrpi1 "bash --login -c '. foo.sh'" 

这是文件 .bash_profile
foouser  
 
SHELL = /bin/bash 
 
PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games 
ksh的类似情况
$ ssh kshuser@jdsdrop1.jimsander.io "date" 
Tue Apr 18 11:52:43 EDT 2017 
 
$ ssh kshuser@jdsdrop1 "ksh -l -c date" 

这是SHELL(/ usr / bin / ksh)文件 .profile
Tue Apr 18 11:53:24 EDT 2017 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!