Jump to content

Anonim

Member
  • Content count

    37
  • Joined

  • Last visited

  • Days Won

    2
  1. Exemplul de mai jos folosește matricile shell pentru a stoca toate numele de fișiere ( file) și numărul său de linii ( line). Elementele dintr-un tablou sunt menționate folosind notația [] obișnuită, de exemplu, file[1]se referă la primul element din tablă file. Rețineți, faptul că bash acceptă numai matricile unidimensionale cu numere întregi ca indizări. A se vedea secțiunea despre matrice în Bash-Scripting Ghid avansat: . #! / Bin / bash # Numărarea numărului de linii dintr-o listă de fișiere # versiunea funcției # funcție stocarea listei tuturor fișierelor în fișiere variabile get_files () { files = "` ls *. [ch] `" } # funcție care numără numărul de linii dintr-un fișier count_lines () { f = $ 1 # Primul argument este numele de fișier l = `wc -l $ f | sed 's / ^ \ ([0-9] * \). * $ / \ 1 /' '# număr de linii } # scriptul trebuie apelat fără argumente dacă [$ # -gege 1] atunci ecou „Utilizare: $ 0” iesirea 1 Fi # împărțit de linia nouă IFS = $ '\ 012' ecou "$ 0 numără liniile de cod" # nu uitați să inițializați! l = 0 n = 0 s = 0 # apelează la o funcție pentru a obține o listă de fișiere get_files # iterați peste această listă pentru f în $ fișiere do # apelează la o funcție pentru numărarea liniilor numără_line $ f ecou „$ f: $ l” loc # magazin nume de fișier într-un tablou fișier [$ n] = $ f # stocarea numărului de linii dintr-un tablou linii [$ n] = $ l # contor de creștere n = $ [$ n + 1] # suma crescută a tuturor liniilor s = $ [$ s + $ l] Terminat ecuați „$ n fișiere în total, cu $ s în linii în total” i = 5 ecou "Fișierul $ i-a fost $ {fișier [$ i]} cu linii $ {linii [$ i]}"
  2. #! / Bin / bash # Numărarea numărului de linii dintr-o listă de fișiere # versiunea funcției # funcție stocarea listei tuturor fișierelor în fișiere variabile get_files () { files = "` ls *. [ch] `" } # funcție care numără numărul de linii dintr-un fișier count_lines () { local f = $ 1 # Primul argument este numele de fișier l = `wc -l $ f | sed 's / ^ \ ([0-9] * \). * $ / \ 1 /' '# număr de linii } # scriptul trebuie apelat fără argumente dacă [$ # -gege 1] atunci ecou „Utilizare: $ 0” iesirea 1 Fi # împărțit de linia nouă IFS = $ '\ 012' ecou "$ 0 numără liniile de cod" # nu uitați să inițializați! l = 0 n = 0 s = 0 # apelează la o funcție pentru a obține o listă de fișiere get_files # iterați peste această listă pentru f în $ fișiere do # apelează la o funcție pentru numărarea liniilor numără_line $ f ecou „$ f: $ l” # contor de creștere n = $ [$ n + 1] # suma crescută a tuturor liniilor s = $ [$ s + $ l] Terminat ecuați „$ n fișiere în total, cu $ s în linii în total”

Anonim last won the day on January 26 2018

Anonim had the most liked content!

Community Reputation

4 Neutral

  About

  • Rank
    Novice

×