将Shell脚本中的变量用作另一个命令的输入

问题描述 投票:0回答:1
#!/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还要长的命令?

linux shell variables
1个回答
1
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.