GNU/Linux >> Belajar Linux >  >> Linux

bash:masukkan file daftar ke dalam variabel dan tetapi ukuran array adalah 1

Anda tidak membuat larik kecuali Anda mengelilinginya dengan ( ) :

dirlist=(`ls ${prefix}*.text`)

Deklarasikan array file:

arr=(~/myDir/*)

Iterasi melalui array menggunakan penghitung:

for ((i=0; i < ${#arr[@]}; i++)); do

  # [do something to each element of array]

  echo "${arr[$i]}"
done

Ini:

dirlist=`ls ${prefix}*.text`

tidak membuat array. Itu hanya membuat string dengan nama file yang dipisahkan spasi.

Anda harus melakukannya

dirlist=(`ls ${prefix}*.text`)

untuk membuatnya menjadi larik.

Lalu $dirlist hanya akan mereferensikan elemen pertama, jadi Anda harus menggunakan

${dirlist[*]}

untuk mereferensikan semuanya dalam loop.


Linux
  1. Parsing Satu Bidang Dari Json Array Ke Bash Array?

  2. Grep Untuk Beberapa String Dalam File, Dan Kemudian Buat Daftar File Dalam Urutan Ukuran?

  3. Dapatkan Semua File Tapi File Dalam Array – Bash?

  1. Loop Melalui Folder Dan Daftar File?

  2. Periksa apakah ada variabel dalam daftar di Bash

  3. meneruskan grep ke dalam variabel di bash

  1. bash:atur variabel array env dan de-referensi dari skrip shell gagal

  2. Perintah untuk membuat daftar semua file kecuali . (titik) dan .. (titik titik)

  3. Transfer file menggunakan lftp dalam skrip bash