#!/bin/bash # 设置要传递的变量 export MY_VAR1="data1" export MY_VAR2="data2" # 通过跳板机执行目标服务器上的脚本 ssh -J jump_host target_host 'bash -s' << 'EOF' #!/bin/bash # 接收并设置变量 $(declare -p MY_VAR1 MY_VAR2) # 执行本地脚本(假设脚本在远程服务器上) /path/to/remote_script.sh # 或者直接执行命令 echo "在目标服务器上执行:" echo "MY_VAR1: $MY_VAR1" echo "MY_VAR2: $MY_VAR2" EOF 或 # 添加-v参数查看详细连接过程 ssh -v -J jump_host target_host 'bash -s' << EOF $(declare -p MY_VAR1 MY_VAR2) # 调试命令 env | grep MY_VAR EOF 或 ssh -J jump_host target_host 'bash -s' << 'EOF' # 接收并设置变量 eval "$(declare -p MY_VAR1 MY_VAR2)" # 定义函数 remoteFunc() { echo "变量值: $MY_VAR1" # 内部SSH命令 ssh target_host_inner "eval \$(declare -p MY_VAR1); echo '内部变量: $MY_VAR1'" } remoteFunc EOF