Linux 第三个远程服务器中的Bash变量
我需要在第三个linux系统中输入一个变量,方案如下: 从我的笔记本电脑>docker服务器>容器Linux 第三个远程服务器中的Bash变量,linux,bash,variables,docker,Linux,Bash,Variables,Docker,我需要在第三个linux系统中输入一个变量,方案如下: 从我的笔记本电脑>docker服务器>容器 #!/bin/bash domain=$1 ssh -i $SSH_KEY docker@10.10.10.10 "docker run --rm=true 931967fb3e32 /bin/bash -c curl -Is $domain 当然,变量只到达docker服务器,而不到达容器。测试的第一个选项是将$domain作为命令传递: (注意使用-it,以确保在交互式会话中使用tty)
#!/bin/bash
domain=$1
ssh -i $SSH_KEY docker@10.10.10.10 "docker run --rm=true 931967fb3e32 /bin/bash -c curl -Is $domain
当然,变量只到达docker服务器,而不到达容器。测试的第一个选项是将
$domain
作为命令传递:
(注意使用-it
,以确保在交互式会话中使用tty)
如果curl
以某种方式没有选择正确的值,(您可以通过将/bin/bash-c curl-Is$domain
替换为/bin/bash-c echo$domain
来测试它),将其包装在脚本中(这意味着您的图像应该包含该脚本)
正如评论中所讨论的,它似乎在没有bash-c
的情况下工作:
ssh -i $SSH_KEY docker@10.10.10.10 "docker run --rm=true 931967fb3e32 curl -Is $domain
测试的第一个选项是将
$domain
作为命令传递:
(注意使用-it
,以确保在交互式会话中使用tty)
如果curl
以某种方式没有选择正确的值,(您可以通过将/bin/bash-c curl-Is$domain
替换为/bin/bash-c echo$domain
来测试它),将其包装在脚本中(这意味着您的图像应该包含该脚本)
正如评论中所讨论的,它似乎在没有bash-c
的情况下工作:
ssh -i $SSH_KEY docker@10.10.10.10 "docker run --rm=true 931967fb3e32 curl -Is $domain
我没有通过tty登录docker服务器,因此无法使用tty启动容器。还使用容器上的echo及其空白进行了测试。@SScast这可能是因为缺少tty(除非简单的
echo xxx
显示xxx
)。您也可以不使用bash-c
进行尝试吗?(只是为了测试,尽管它将取决于图像的入口点
)谢谢你,VonC,没有bash它可以工作,但是现在它打开了,我们需要在curl之后执行另一个命令,它在hosts文件中的回显,所以我们需要bashoption@SScast您确认需要-e“domain=$domain”吗
option?@SScast正常。我对答案进行了编辑,以使命令生效。你能看一下吗?我没有通过tty登录docker服务器,所以我不能用tty启动容器。还使用容器上的echo及其空白进行了测试。@SScast这可能是因为缺少tty(除非简单的echo xxx
显示xxx
)。您也可以不使用bash-c
进行尝试吗?(只是为了测试,尽管它将取决于图像的入口点
)谢谢你,VonC,没有bash它可以工作,但是现在它打开了,我们需要在curl之后执行另一个命令,它在hosts文件中的回显,所以我们需要bashoption@SScast您确认需要-e“domain=$domain”吗
option?@SScast正常。我对答案进行了编辑,以使命令生效。你能复习一下吗?