我這里有一些代碼生成一個 ec2 實體 ID 作為輸出,我想將實體 ID 存盤在一個陣列中,但它們被連接為字串而不是陣列。有什么幫助嗎?
tasks=$(aws ecs list-tasks --cluster ${cluster} | jq --raw-output ' .taskArns[]')
declare -a instances
for task in ${tasks[@]};
do
container=$(aws ecs describe-tasks --task ${task} --cluster ${cluster} | jq -r '.tasks[].containerInstanceArn' | cut -d "/" -f3 )
# Add the output of the next command to instances array
instances =$(aws ecs describe-container-instances --cluster ${cluster} --container-instances ${container} | jq --raw-output '.containerInstances[].ec2InstanceId')
done
echo "${instances[@]}"
上面的代碼列印了一個字串,其中所有實體連接在一起......我哪里出錯了?
uj5u.com熱心網友回復:
要將元素附加到陣列,需要括號:
declare -a instances
instances =( "some element" )
instances =( "$(date)" )
declare -p instances
# => declare -a instances=([0]="some element" [1]="Wed Aug 31 09:39:21 EDT 2022")
空格不是必需的,但可以提高 IMO 的可讀性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/503777.html
上一篇:如何在zsh中執行變數?
