Bash 如何在通过SSH在远程计算机上执行脚本时使用源文件

Bash 如何在通过SSH在远程计算机上执行脚本时使用源文件,bash,shell,ssh,Bash,Shell,Ssh,我正在通过SSH在远程机器上运行bash脚本 ssh -T $DBHOST2 'bash -s' < $DIR/script.sh <arguments> 但由于远程计算机中不存在源文件,因此会导致错误 Directory is . ./source.bashrc: No such file or directory 我总是可以在主脚本中定义函数,而不是使用源文件,但我想知道是否有任何方法可以使用单独的源文件 编辑:源文件和脚本都不在远程计算机中。ssh-T$DBHOST2

我正在通过SSH在远程机器上运行bash脚本

ssh -T $DBHOST2 'bash -s' < $DIR/script.sh <arguments>
但由于远程计算机中不存在源文件,因此会导致错误

Directory is .
./source.bashrc: No such file or directory
我总是可以在主脚本中定义函数,而不是使用源文件,但我想知道是否有任何方法可以使用单独的源文件


编辑:源文件和脚本都不在远程计算机中。

ssh-T$DBHOST2'bash-s'以下是实现此目的的方法-两者都只需要一个
ssh
会话

ssh -T $DBHOST2 'bash -s' <<< $(cat source_file $DIR/script.sh)
scp $DIR/source.bashrc $DBHOST2:./
选项1:使用
tar
将脚本复制到服务器
下面是我想做的

1.将源文件复制到远程计算机

ssh -T $DBHOST2 'bash -s' <<< $(cat source_file $DIR/script.sh)
scp $DIR/source.bashrc $DBHOST2:./
二,


如何从脚本中使用源_文件。
source“source\u file”
足够了吗?我应该注意,源文件和脚本都不在远程计算机上。几年前我也遇到过同样的问题,但我从未得到回复,希望你能有更多的运气!
scp $DIR/source.bashrc $DBHOST2:./
ssh $DBHOST2 "bash -s" -- < $DIR/script.sh <arguments>
ssh $DBHOST2 "cat logfile.log; rm -f source.bashrc logfile.log" > dbhost.log