2014-05-05 4 views
0

D'abord, je ne suis pas un scripteur Unix, mais j'ai été chargé d'avoir l'étape ci-dessous pour vérifier la taille du fichier. S'il est supérieur à 0, il continuera à traiter ce fichier.L'étape Unix ne se termine pas

Cependant, si son 0, il se fera l'écho « Skip it - PAS DE DONNÉES DANS LE DOSSIER DE dnt_pln_inconj.dat »

problème est quand je lance cette étape, il obtient seulement dans la mesure du « fichier reçu avec des données - Continuer "

Comment puis-je le faire continuer le traitement si la taille du fichier est supérieure à 0? Qu'est-ce que je fais mal?

Toute aide serait géniale.

#Step 12: Verify pln proc inconjunction 
step_num=$((step_num+1)) 
echo "stepnum $step_num: Verify pln proc inconjunction" 

if [[ $last_step -eq $step_num ]] 
then 
    if [[ -s ${source_dir}/${file} ]] 
    then 
    echo "Received file with data - Continue" 

    $scriptdir/dental_script/dnt_verify_counts.sh dnt_pln_inconj.dat PLN-130 
    ret_val=$? 
    if [[ $ret_val -ne 0 ]] 
    then 
     next_step_num=$((step_num+1)) 
     echo $next_step_num > $logdir/$scriptname"_"step_num.log 
     exit $step_num 
    fi 
    else 
    echo "Skip it - NO DATA IN THE dnt_pln_inconj.dat FILE" 
    fi 
    last_step=$((last_step+1)) 
else 
    echo "Skip it" 
fi 

Répondre

0

Tout dépend de ce que fait le script dnt_verify_counts.sh. Dans votre code:

ret_val=$?

est la vérification de code de sortie de commande précédente - qui est dnt_verify_counts.sh avec des paramètres. Je pense qu'il ne retourne pas la taille du fichier .. Si vous voulez vérifier la taille du fichier, jouer avec « du » utilitaire par exemple, qui vous donne la taille du fichier donné, par exemple:

du /path/to/dnt_pln_inconj.dat

puis , couper les données données avec cut, pour retourner uniquement la partie taille; ligne:

$(du /path/to/dnt_pln_inconj.dat | cut -f 1 -)

retournera la taille du fichier donné que vous pouvez utiliser dans votre cas - puis - vérifier d'autre block.conditions.

+0

Le fichier dnt_verify_counts.sh vérifie l'existence du fichier dnt_counts.dat et s'il est rempli (il est toujours rempli). Le fichier dnt_counts.dat est simplement un fichier contenant le nombre d'enregistrements de certains fichiers. – user3605844