Puncte:0

Tipăriți elemente de matrice din indexul k

drapel jp

Am o matrice bash și vreau să printez elementele matricei pornind de la index k.

Lucrurile nu au mers cu următoarea strategie.

printf "%s\n" "${ar[$j:]}"
cocomac avatar
drapel cn
De ce nu folosiți pur și simplu o buclă „for”?
Puncte:1
drapel hr

Sintaxa este ${ar[@]:j}1. De la Extinderea parametrilor sectiune de man bash:

   ${parameter:offset:length}
   .
   .
   .
          Dacă parametrul este un nume de matrice indexat în indice @ sau *,
          rezultatul este lungimea membrilor matricei care începe cu ${paâ
          rameter[offset]}. Un offset negativ este luat în raport cu unul
          mai mare decât indexul maxim al matricei specificate. Este un
          eroare de extindere dacă lungimea este evaluată la un număr mai mic decât zero.

Deci dat

$ ar=("1" "2 3" "4" "5 6" "7 8" "9")

apoi (amintindu-ne ca indexarea matricei bash este bazata pe 0):

$ j=3; printf „%s\n” „${ar[@]:j}”
5 6
7 8
9

Alternativ, utilizați un stil C pentru buclă:

pentru ((i=k;i<${#ar[@]};i++)); do
  printf '%s\n' "${ar[i]}"
Terminat

  1. sau ${ar[@]:$j} dacă preferi – al doilea $ este opțional, deoarece indicii sunt evaluați într-un context numeric similar cu ((...))

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.