Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 第三个远程服务器中的Bash变量_Linux_Bash_Variables_Docker - Fatal编程技术网

Linux 第三个远程服务器中的Bash变量

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)

我需要在第三个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)

如果
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正常。我对答案进行了编辑,以使命令生效。你能复习一下吗?