3

我有几个功能的 shell 脚本。我需要在 2 台不同的机器上运行它n多次。我可以调用下面提到的函数并执行它吗?或者有没有其他方法可以做到这一点?

#!/usr/bash

execCommand () {
  #few statements here
}

getStatus() {
  #few statements here
}

main () {
  execCommand
  getStatus
}

$machine1="machine1"
$machine2="machine2"
$user="username"
$n=2

while [$n -le 2]
 do
   ssh $user@$machine1 'main'
   sleep 100
    ssh $user@$machine2 'main'
    n=$n+1
 done
4

1 回答 1

1

没有直接的方法可以做到这一点。但是您可以提取所有函数定义并将它们作为命令注入远程命令的开头:

ssh "$user@$machine1" "$(declare -f); main"

请注意,您仍然可能在使用全局变量和其他资源时遇到问题。

于 2015-11-23T16:08:10.567 回答