簡體   English   中英

使用 Shell 腳本中的變量作為另一個命令的輸入

[英]Using Variable in Shell script as input for another command

#!/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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM