我想在远程机器上执行shell脚本,我使用下面的命令实现了这个,
ssh user@remote_machine "bash -s" < /usr/test.sh
@H_502_6@
shell脚本在远程计算机中正确执行.现在我在脚本中进行了一些更改,以从配置文件中获取一些值.该脚本包含以下行,
#!bin/bash
source /usr/property.config
echo "testName"
@H_502_6@
property.config:
testName=xxx
testPwd=yyy
@H_502_6@
现在如果我在远程机器上运行shell脚本,我没有收到这样的文件错误,因为/usr/property.config在远程机器中不可用.
如何将配置文件与shell脚本一起传递到远程机器中执行?
解决方法:
只有这样您才能引用您创建的配置文件并仍然运行脚本,您需要将配置文件放在所需的路径上,有两种方法可以执行此操作.
>如果config几乎总是被修复并且您不需要更改它,请在您需要运行脚本的主机上本地进行配置,然后在脚本中放置配置文件的绝对路径并确保用户运行脚本有权访问它.
>如果每次要运行该脚本时都需要发送配置文件,那么可以在发送和调用脚本之前简单地scp该文件.
scp property.config user@remote_machine:/usr/property.config
ssh user@remote_machine "bash -s" < /usr/test.sh
@H_502_6@
编辑
根据要求,如果你想在一行强行完成,这就是它的完成方式:
> property.config
testName=xxx
testPwd=yyy
@H_502_6@
> test.sh
#!bin/bash
#do not use this line source /usr/property.config
echo "$testName"
@H_502_6@
现在您可以像John建议的那样运行命令:
ssh user@remote_machine "bash -s" < <(cat /usr/property.config /usr/test.sh)
@H_502_6@
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。