#!/bin/bash
sudo docker-compose -f /home/administrator/compose/docker-compose.yml up --build -d
OUTPUT=$(docker ps | grep 'nginx_custom' | awk '{ print $1 }')
echo $OUTPUT
sudo docker $OUTPUT nginx -s reload
这是在控制台中正确打印的ID。
6e3b3aa3fbc4
此命令正常工作。
docker exec 6e3b3aa3fbc4 nginx -s reload
但是该变量似乎没有传递给此处的命令:
sudo docker $OUTPUT nginx -s reload
我对shell非常不熟悉:(。如何将变量传递给比echo还要长的命令?
将set -x
添加到脚本中,看看会发生什么:您可能可以摆脱grep并将其合并到awk
#!/bin/bash
set -x
sudo docker-compose -f /home/administrator/compose/docker-compose.yml up --build -d
OUTPUT=$(docker ps | awk '/ngnix_custom/{ print $1 }')
echo $OUTPUT
sudo docker $OUTPUT nginx -s reload