知方号

知方号

在Shell脚本中通过ssh从脚本运行函数

在Shell脚本中通过ssh从脚本运行函数

文章目录 在Shell脚本中通过ssh从脚本运行函数declare -f 和typset -f,这两个命令有什么区别declare -f 和typset -f,这两个命令可以通过ssh运行脚本中的函数吗如果我有main.sh和util.sh,并且在main.sh中引用了util.sh,该怎么办? 我应该如何通过ssh执行main.sh而不将utils.sh复制到远程计算机?

在Shell脚本中通过ssh从脚本运行函数

是否有任何聪明的方法可以通过ssh在远程主机上运行本地Bash功能? 例如:

#!/bin/bash#Definition of the functionf () { ls -l; }#I want to use the function locallyf#Execution of the function on the remote machine.ssh user@host f#Reuse of the same function on another machine.ssh user@host2 f

以上操作时行不通的,我知道这行不通,但是有办法实现吗?

以下是相关解决方法:

可以使用typeset命令通过ssh使功能在远程计算机上可用。有多个选项,具体取决于您要如何运行远程脚本。

#!/bin/bash# Define your functionmyfn () { ls -l; }

要在远程主机上使用该功能:

typeset -f myfn | ssh user@host"$(cat); myfn"typeset -f myfn | ssh user@host2"$(cat); myfn"

更好写法如下:,为什么还要麻烦管道:

ssh user@host"$(typeset -f myfn); myfn"

或者,您可以使用HEREDOC:

ssh user@host

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。