将 shell 命令的输出复制到变量并需要将输出数据作为逗号分隔
Copy output of a shell command to a variable and need to make output data's comma separated
我正在尝试获取 docker 容器的 IP,并且需要以逗号分隔的形式传递 IP。
使用下面的命令我可以得到容器的 ip
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(sudo docker ps -q --filter "name=slave")
输出-->
> 10.17.0.4
> 10.17.0.3
> 10.17.0.2
Need help to save the output IP's to a variable and process IP's to be comma separated like 10.17.0.4,10.17.0.3,10.17.0.2
您使用的是旧版本 Docker(信息)。所以下面的命令在 Docker
的新版本中不起作用
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(sudo docker ps -q --filter "name=slave") | sed -n -e 'H;${x;s/\n/,/g;s/^,//;p;}'
在Docker的新版本中,您可以尝试以下命令。
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q --filter ancestor=adminer) | sed -n -e 'H;${x;s/\n/,/g;s/^,//;p;}'
您可以在新版本中使用以下命令根据图像进行过滤,这将 return 所有容器 ID,否则旧命令将 return 在新版本中只有一个容器。
docker ps -q --filter ancestor=image_name
我正在尝试获取 docker 容器的 IP,并且需要以逗号分隔的形式传递 IP。
使用下面的命令我可以得到容器的 ip
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(sudo docker ps -q --filter "name=slave")
输出-->
> 10.17.0.4
> 10.17.0.3
> 10.17.0.2
Need help to save the output IP's to a variable and process IP's to be comma separated like 10.17.0.4,10.17.0.3,10.17.0.2
您使用的是旧版本 Docker(信息)。所以下面的命令在 Docker
的新版本中不起作用sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(sudo docker ps -q --filter "name=slave") | sed -n -e 'H;${x;s/\n/,/g;s/^,//;p;}'
在Docker的新版本中,您可以尝试以下命令。
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q --filter ancestor=adminer) | sed -n -e 'H;${x;s/\n/,/g;s/^,//;p;}'
您可以在新版本中使用以下命令根据图像进行过滤,这将 return 所有容器 ID,否则旧命令将 return 在新版本中只有一个容器。
docker ps -q --filter ancestor=image_name