Puncte:0

Scriptul Shell nu citește fișierul așa cum era de așteptat

drapel cn

Mai jos este scriptul care încearcă să fie executat:

citeste n
pentru ((i=1;i<=$n;i++))
do
file=createserver"$i".json
echo $fișier
instanceid[$i-1]=$(jq -r '.instance.id' ./$fișier)
echo $instanceid
Terminat

$file afișează valoarea corectă. Cu toate acestea, $instanceid nu este. Ieșirea pe care o primesc este după cum urmează:

createserver1.json
a5a485df-b2e8-4467-9144-d012d96d0305
createserver2.json
**a5a485df-b2e8-4467-9144-d012d96d0305**

Cel îngroșat de mai sus nu este așa de așteptat. Cele două fișiere din care ID-ul instanței este capturat ca prezent și conținutul său este după cum urmează:

{"instance":{"id":"a5a485df-b2e8-4467-9144-d012d96d0305","os":"Ubuntu 18.04 LTS x64"}}
{"instance":{"id":"4a8ebe11-be1c-45f9-a82c-c41113ecd3a5","os":"Ubuntu 18.04 LTS x64"}}

Când conținutul este diferit în fișiere, de ce scriptul preia întotdeauna conținutul din primul fișier în sine. Am pierdut ceva? Vă rugăm să ghidați.

Puncte:1
drapel gb

doua moduri in care poti incerca:

citeste n
pentru ((i=1;i<=$n;i++))
do
file=createserver"$i".json
echo $fișier
instanceid[$i-1]=$(jq -r '.instance.id' ./$fișier)
echo ${instanceid[$i-1]}
Terminat

sau

citeste n
pentru ((i=1;i<=$n;i++))
do
file=createserver"$i".json
echo $fișier
instanceid[$i-1]=$(jq -r '.instance.id' ./$fișier)
Terminat
pentru i în ${!instanceid[@]}; do echo ${instanceid[$i]}; Terminat

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.