GNU/Linux >> Znalost Linux >  >> Linux

Linux – Jak zjistit, zda jsou ve složce soubory, a podle toho ukončit (v Ksh)?

Mám KSH (ne Bash ) skript, kterému chci zabránit kontrolou počtu souborů. Pokud nejsou žádné soubory, které chci vytisknout „PRÁZDNÝ“, ukončete. Jinak pokračujte.

Problém je, když provedu počítání souborů a je PRÁZDNÝ, pak se to zlomí.

Kód:

###################################################
# 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

Pokud není prázdný, funguje.

Pokud je prázdný, zobrazí se níže uvedená chyba a systém se přeruší. Chtěl bych, aby to jen nahlásilo PRÁZDNÉ a skončilo 0:

Chyba:

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

Co dělám špatně?

Pokus č. 2

Zkoušel jsem to také, ale výsledek je stejný:

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

Přijatá odpověď:

Chybovou zprávu můžete nechat zmizet pomocí 2>/dev/null uvnitř ls .

Poté můžete zkontrolovat, zda $CONTENTS je prázdný s -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. Jak najít a seřadit soubory na základě data a času úpravy v Linuxu

  2. Jak najít a odstranit prázdné adresáře a soubory v Linuxu

  3. Jak přesunu soubory a adresáře do nadřazené složky v Linuxu?

  1. Jak najít soubory s oprávněními SUID a SGID v Linuxu

  2. Jak chmodovat a chown skryté soubory v Linuxu?

  3. Jak zjistit, zda jsou ve složce soubory, a podle toho ukončit (v KSH)

  1. Jak zjistit nejlepší adresáře a soubory (místo na disku) v Linuxu

  2. Jak najít velké soubory linux pomocí příkazů find a du

  3. Linux – Jak zjistit, jaké pevné disky jsou v systému?