Bash 在远程上下文中使用之前在本地解析变量
Bash resolve variables locally before used in a remote context
我有一个脚本可以在远程机器上设置一些环境变量,但我遇到了一些变量在远程机器的上下文中被解析的问题。在发送到远程之前必须解析这些变量。
#!/bin/bash
devIP=$(ifconfig | sed -En \'s/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*//p')
#10.0.0.1
ssh -A ubuntu@remote '\
export variable="$devIP";\
echo $variable'
#Will echo blank as it is trying to resolve $devIP under the remote context.
如何将脚本执行程序的 IP 正确输入到远程计算机上的环境变量中?
考虑以下命令
ssh -A ubuntu@remote "\
export variable=$devIP;\
echo $variable"
这里是在本地机器上对命令行参数
中的变量$devIP
进行变量替换
export variable=$devIP; echo $variable
因为双引号。
然而,变量 $variable
受到反斜杠局部替换的保护。
我有一个脚本可以在远程机器上设置一些环境变量,但我遇到了一些变量在远程机器的上下文中被解析的问题。在发送到远程之前必须解析这些变量。
#!/bin/bash
devIP=$(ifconfig | sed -En \'s/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*//p')
#10.0.0.1
ssh -A ubuntu@remote '\
export variable="$devIP";\
echo $variable'
#Will echo blank as it is trying to resolve $devIP under the remote context.
如何将脚本执行程序的 IP 正确输入到远程计算机上的环境变量中?
考虑以下命令
ssh -A ubuntu@remote "\
export variable=$devIP;\
echo $variable"
这里是在本地机器上对命令行参数
中的变量$devIP
进行变量替换
export variable=$devIP; echo $variable
因为双引号。
然而,变量 $variable
受到反斜杠局部替换的保护。