GNU/Linux >> Belajar Linux >  >> Linux

Linux – Bagaimana Cara Mengetahui Jika Ada File Dalam Folder Dan Keluar Dengan Sesuai (dalam Ksh)?

Saya memiliki KSH (bukan Bash ) skrip yang ingin saya awali dengan pemeriksaan jumlah file. Jika tidak ada file yang ingin saya cetak "KOSONG" lalu keluar. Jika tidak, lanjutkan.

Masalahnya adalah ketika saya melakukan penghitungan file, dan itu KOSONG, lalu rusak.

Kode:

###################################################
# Test to see if files exist in Drop Folder
###################################################
CONTENTS=$(ls ${gp_path}ALLSTUFF*.zip)
if [[ ${#CONTENTS[@]} -eq 0 ]]; then
    print 'EMPTY'
    exit 0
else
    print 'NOT EMPTY'
fi

Jika tidak kosong, itu berfungsi.

Jika kosong, saya mendapatkan kesalahan di bawah ini maka sistem rusak. Saya ingin melaporkannya KOSONG dan keluar 0:

Kesalahan:

/nas/Opt/databox/folder/ALLSTUFF*.zip not found

Apa yang saya lakukan salah?

Percobaan #2

Saya mencoba ini juga, tetapi saya mendapatkan hasil yang sama:

if [ "$(ls ${gp_path}ALLSTUFF*.zip)" ]; then
    print 'NOT EMPTY'
else
    print 'EMPTY'
    exit 0
fi

Jawaban yang Diterima:

Anda dapat menghilangkan pesan kesalahan dengan 2>/dev/null di dalam ls .

Anda kemudian dapat memeriksa untuk melihat apakah $CONTENTS kosong dengan -z

CONTENTS=$(ls -d -- "${gp_path}ALLSTUFF"*.zip 2>/dev/null)
if [ -z "$CONTENTS" ]; then
    print 'EMPTY'
    exit 0
else
    print 'NOT EMPTY'
fi

Linux
  1. Linux – Bagaimana Cara Mengetahui Hard Disk Apa yang Ada di Sistem?

  2. Bagaimana cara memindahkan file dan direktori ke folder induk di Linux?

  3. Bagaimana cara chmod dan chown file tersembunyi di Linux?

  1. Cara Mengetahui Direktori dan File Teratas (Ruang Disk) di Linux

  2. Cara Menemukan dan Mengurutkan File Berdasarkan Tanggal dan Waktu Modifikasi di Linux

  3. Cara mengetahui apakah ada file di folder dan keluar sesuai (di KSH)

  1. Cara Menemukan File Dengan Izin SUID dan SGID di Linux

  2. Cara Menemukan file besar linux dengan perintah find dan du

  3. Cara Menemukan dan Menghapus Direktori dan File Kosong di Linux