我有一个脚本解析服务器列表,寻找一些东西并在情况正确时执行命令.主服务器通过ssh连接到它们,执行EOF语句中的所有命令:
#!/bin/bash
# parsing servers
# defining one local variable $VAR
ssh -T -p 1234 root@"server-ip" "$variable" << 'EOF'
# doing some stuff...
var_result=$(mysql -hhost -uuser '-ppasswort' -Ddatabase -N -e "SELECT something FROM somewhere WHERE value=$VAR;")
EOF
Run Code Online (Sandbox Code Playgroud)
我知道如果我从EOF中删除单引号,变量可以通过,但如果我这样做,mysql语句将无法工作,一切都会中断.
我知道有传递变量的方法,但有";"的东西 选项之间不适用于我(脚本尝试将其作为命令执行)
有任何想法吗?